解析 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,將其儲存在變數中,然後使用 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.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 儲存在變數中之前,您應該嘗試兩個選項。 (此外,除非伺服器已經有主機名,否則如何找出新的 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_IPNAME_IP="$(nmblookup NAME | head -n 1 | cut -d ' ' -f 1)"

相關內容