Resuelva netbios-name y páselo a mount.cifs en el script

Resuelva netbios-name y páselo a mount.cifs en el script

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-upgradeUbuntu 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

nslookupse estaba resolviendo correctamente syslogy straceno mostraba nada.

Al final, el problema fue el .localdominio junto con un cambio (posiblemente durante la actualización del lanzamiento) en el /etc/nsswitch.confque se colocó el demonio mDNS Avahi/Bonjour mdns4_minimalantes 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_IPconNAME_IP="$(nmblookup NAME | head -n 1 | cut -d ' ' -f 1)"

información relacionada