netbios-nameを解析してスクリプトのmount.cifsに渡します。

netbios-nameを解析してスクリプトのmount.cifsに渡します。

私のWindowsコンピュータにすべての共有をマウントするスクリプトがあります。オリジナル:

mount.cifs //192.168.0.7/pictures ~/otherpc/pictures -o user=me,domain=mynetwork,password=12345,vers=3.0

..約10行。

問題は、私のネットワークがDHCPであるということです。したがって、時々このスクリプトでIPを変更する必要があります。

スクリプトは次のように動作しました。

mount.cifs //OTHERPC/pictures ~/otherpc/pictures -o user=me,domain=mynetwork,password=12345,ver=3.0

しかし、ある時点からエラーが発生し始めます。

mount error: could not resolve address for OTHERPC: Unknown error

しかし、Nautilusは問題なく名前を解析しました。

IPを解析して変数に保存し、スクリプトでIPを直接使用するのではなく、mount.cifsと// $ $ variableを使用する方法はありますか?

ありがとう

答え1

do-release-upgradeUbuntu 18.04.1 LTSを使用した後も同じ問題が発生しました。以前まで幸せに上がった株式はみんなこんな醜い結末で終わった

mount error: could not resolve address for server.domain.local: Unknown error

nslookup解析は正確で、syslog何もstrace表示されません。

結局のところ、問題はドメイン名と魔女がmDNS Avahi / Bonjourデーモンを以前のDNSルックアップ.local(おそらくバージョンアップ中)に配置することでした。/etc/nsswitch.confmdns4_minimal

注文を変更した後、問題が解決しました。

hosts:          files mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns 

到着

hosts:          files dns mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return]

便利なリンクはすべて覚えていませんが、次のリンクが役に立ちました。https://askubuntu.com/a/853284/810573

答え2

IPを変数に保存する前に試す必要がある2つのオプションがあることがわかりました。 (サーバーにすでにホスト名がない場合は、新しいIPをどのように知ることができますか?)

  • フローティングIPの場合は、IPの代わりにホスト名を使用してマウントしてみてください。

    mount.cifs //cifs.server.com/pictures ~/otherpc/pictures -o user=me,domain=mynetwork,password=12345,vers=3.0
    
  • ネットワークを制御できる場合は、cifsサーバーのIP用にDHCPを予約してください。

答え3

IPを入手できます。nmblookup NAME | head -n 1 | cut -d ' ' -f 1

NAME_IP変数に入れるNAME_IP="$(nmblookup NAME | head -n 1 | cut -d ' ' -f 1)"

関連情報