私の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-upgrade
Ubuntu 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.conf
mdns4_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)"