0 votos

¿Cómo puedo asegurarme de que las rutas de volumen basadas en SMB están disponibles?

Mi máquina es mymac y la máquina remota es remotemac (ambos están ejecutando El Capitan 10.11.6) - Hago referencia a una acción en remotemac , ubicado en //remotemac/ruta/para/remoteshare, como /Volumes/remoteshare.

A veces, especialmente cuando me he conectado recientemente a esa máquina remota o recurso compartido desde Finder, la ruta /Volumes/remoteshare está disponible. Pero después de algún tiempo, esa ruta /Volumes/remoteshare no está disponible.

$ ls /Volumes
Macintosh HD
$ # connect to remoteshare from Finder
$ ls /Volumes
$ Macintosh HD    remoteshare
# After some time (a few hours)...
$ ls /Volumes
Macintosh HD 
$ # note that /Volumes/remoteshare is now missing

¿Qué puedo hacer en mi bash script para asegurar que el volumen remoteshare está presente, o creado antes de ser referenciado?

1voto

klanomath Puntos 19587

En un script se puede utilizar la siguiente construcción básica:

#!bin/bash

if mount | grep -q "remoteshare"; then # check if remoteshare is available 
    exit
else
    echo not found
fi

grep -q ... suprime la salida normal. Si tiene éxito el script sale. En el otro caso se hará un eco de "no encontrado".

En lugar de echo not found puedes conectarte al servidor remoto mediante ssh, y ejecutar serveradmin y activar o reiniciar el servicio smb - man serveradmin le mostrará cómo hacerlo. A continuación, salga de la sesión ssh y trate de volver a montar el recurso compartido SMB.

Para acceder al servidor sin contraseña activar la autenticación basada en claves - pasar una contraseña en un script es inseguro y propenso a errores. Para utilizar serveradmin en el servidor remoto sin sudoing, modifica /etc/sudoers en el servidor remoto y cambia la parte

## User privilege specification
##
root ALL=(ALL) ALL
%admin  ALL=(ALL) ALL

a

## User privilege specification
##
root ALL=(ALL) ALL
%admin  ALL=(ALL) ALL
your_remote_username ALL=(ALL) NOPASSWD: /Applications/Server.app/Contents/ServerRoot/usr/sbin/serveradmin

En lugar de la línea echo not found utilizar algo como esto entonces:

ssh username@remotemac
serveradmin stop smb
sleep 10
serveradmin start smb
sleep 2
exit
echo "SMB service was restarted"
mount_smbfs //your_remote_username:password@remotemac/folder /some/mntpoint

La inaccesibilidad de un recurso compartido SMB puede tener muchas causas. Probablemente sea imposible cubrir todos los casos en un solo script.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X