![解析 netbios-name 并将其传递给脚本中的 mount.cifs](https://linux22.com/image/109821/%E8%A7%A3%E6%9E%90%20netbios-name%20%E5%B9%B6%E5%B0%86%E5%85%B6%E4%BC%A0%E9%80%92%E7%BB%99%E8%84%9A%E6%9C%AC%E4%B8%AD%E7%9A%84%20mount.cifs.png)
我有一个脚本可以挂载我的 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)"