Tengo un script que monta todos los recursos compartidos desde mi computadora con Windows. Es básicamente:
mount.cifs //192.168.0.7/pictures ~/otherpc/pictures -o user=me,domain=mynetwork,password=12345,vers=3.0
..durante unas 10 líneas.
El problema es que mi red es DHCP. Entonces, de vez en cuando tengo que cambiar la IP en este script.
El script solía funcionar de esta manera:
mount.cifs //OTHERPC/pictures ~/otherpc/pictures -o user=me,domain=mynetwork,password=12345,ver=3.0
Pero en algún momento empezó a producir el error:
mount error: could not resolve address for OTHERPC: Unknown error
Sin embargo, Nautilus resuelve el nombre sin problemas.
¿Hay alguna manera de resolver la IP, almacenarla en una variable y luego usar mount.cifs con //$variable en lugar de la IP directamente en el script?
Gracias
Respuesta1
Tuve exactamente el mismo problema después de instalar do-release-upgrade
Ubuntu 18.04.1 LTS. Todas las acciones que subieron felizmente antes terminaron con este feo
mount error: could not resolve address for server.domain.local: Unknown error
nslookup
se estaba resolviendo correctamente syslog
y strace
no mostraba nada.
Al final, el problema fue el .local
dominio junto con un cambio (posiblemente durante la actualización del lanzamiento) en el /etc/nsswitch.conf
que se colocó el demonio mDNS Avahi/Bonjour mdns4_minimal
antes de la búsqueda de DNS.
Entonces el problema se resolvió después de cambiar el orden de
hosts: files mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns
a
hosts: files dns mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return]
No recuerdo todos los enlaces útiles, pero este ciertamente funcionó:https://askubuntu.com/a/853284/810573
Respuesta2
Veo dos opciones que deberías probar antes de jugar a almacenar la IP en una variable. (Además, a menos que los servidores ya tengan un nombre de host, ¿cómo averiguarás la nueva IP?)
Intente montar con nombre de host en lugar de IP, si es una IP dinámica.
mount.cifs //cifs.server.com/pictures ~/otherpc/pictures -o user=me,domain=mynetwork,password=12345,vers=3.0
- Si la red está bajo su control, haga reservas DHCP para la IP de los servidores cifs.
Respuesta3
Puedes obtener la IP connmblookup NAME | head -n 1 | cut -d ' ' -f 1
Ponlo en variable NAME_IP
conNAME_IP="$(nmblookup NAME | head -n 1 | cut -d ' ' -f 1)"