Aplicación / script constante para la verificación / montaje de unidades compartidas

3

Me pregunto dónde es un buen lugar para comenzar con este problema. Creo que podría lograrse usando el script Apple, pero hay que reconocer que no conozco sus capacidades.

Escenario: tengo un NAS en el que inicio sesión con Finder. Una vez que haya iniciado sesión, hay dos carpetas en el NAS, cuando hago clic en una de las carpetas "SNAS", se monta en la raíz (es decir, si aparece CMD + FLECHA ARRIBA en la parte superior, aparece junto a otras unidades). Luego lo arrastro a mi lista de favoritos.

Cuando se reinicia el Mac, la conexión y el favorito se pierden y tengo que repetir el proceso.

Quiero que un script se ejecute automáticamente en cada inicio, y luego periódicamente (por ejemplo, cada 30 segundos aproximadamente). La secuencia de comandos debe verificar si el NAS está conectado, si no, iniciar sesión en él. Compruebe si la carpeta / unidad está montada, si no, móntela. A continuación, compruebe si está en la lista de favoritos y, si no, seleccione su favorito.

En efecto, cada vez que inicie sesión, monte y favorezca la carpeta / unidad NAS.

Estoy feliz de hacer el trabajo de piernas en el guión, pero si alguien tiene una sugerencia de dónde comenzar / idioma usar / o incluso posiblemente una aplicación dedicada que sería genial ya que no puedo encontrar nada para la solicitud de nicho en las búsquedas

He adjuntado una serie de imágenes que muestran los pasos actuales que se están tomando.

Detalles del SO: macOS Sierra 10.12.1 (16B2555)

    
pregunta Craig McArthur 07.12.2016 - 14:35

1 respuesta

1

Puedes hacer esto en el shell.

Inicia una Terminal, luego ejecuta:

mount

Encuentra la línea con tu volumen y agarra la primera parte hasta el espacio. Debería verse algo como:

//[email protected]/Shared%20Network%20Volume

Ese es el nombre de usuario @ IP_OF_NAS / VolumeName

Ahora aquí está el script, guárdelo como "remount.sh"

#!/bin/bash

date
mounted=$(/sbin/mount | grep -c "VOLUMENAME")
if [ $mounted -eq 0 ]; then
   ping -q -c 2 -t 1 IP_ADDRESS > /dev/null 2>&1
   if [ $? -eq 0 ]; then
      if [ ! -d "/Volumes/VOLUMENAME" ]; then
         mkdir "/Volumes/VOLUMENAME"
         chown LOCALLOGIN:staff "/Volumes/VOLUMENAME"
      fi
     su LOCALLOGIN -c "/sbin/mount -t afp afp://YOURLOGIN:PASSWORD@IP_ADDRESS/VOLUMENAME /Volumes/VOLUMENAME"
   fi
else
   echo "Already mounted"

fi

Es necesario cambiar las variables en todos los CAPS anteriores.

YOURLOGIN (Your login on the NAS)
PASSWORD (Your password on the NAS)
LOCALLOGIN (Your local login on the MAC machine)
IP_ADDRESS (the IP ADDRESS of the NAS)
VOLUMENAME (The Volume Name on the NAS)

Desmonte el volumen de red que montó anteriormente, luego ejecute:

chmod 755 remount.sh
sudo ./remount.sh

Asegúrese de que esto monta el volumen OK. Funcionó bien en mi MacBook con Sierra contra una Apple Time Capsule.

Ahora, si todo está bien, lo agregamos a cron para ejecutarlo como root (sudo) cada 15 minutos.

sudo crontab -e

Agregue algo como esto (sazone al gusto):

*/15 * * * * /Users/warren/remount.sh >> /Users/warren/remount.log 2>&1

Notarás que guardé el script en mi directorio de inicio. Si está ordenado, es probable que no quiera guardarlo allí.

Desmonte el volumen, espere 15 minutos y vea si vuelve a aparecer. Si no es así, mire el archivo de registro para ver qué hay de nuevo.

    
respondido por el Warren Lavallee 07.12.2016 - 19:24

Lea otras preguntas en las etiquetas