我有一個腳本可以掛載我的 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,將其儲存在變數中,然後使用 mount.cifs 和 //$variable 而不是直接在腳本中使用 IP?
謝謝
答案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 儲存在變數中之前,您應該嘗試兩個選項。 (此外,除非伺服器已經有主機名,否則如何找出新的 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
您可以透過以下方式取得IPnmblookup NAME | head -n 1 | cut -d ' ' -f 1
將其放入變數NAME_IP
中NAME_IP="$(nmblookup NAME | head -n 1 | cut -d ' ' -f 1)"