Script/aplicación constante para verificación/montaje de unidades compartidas

Me pregunto cuál es un buen lugar para comenzar con este problema. Creo que podría lograrse usando el script de Apple, pero es cierto 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 presiono CMD + FLECHA ARRIBA hacia arriba, aparece junto a otras unidades). Luego lo arrastro a mi lista de favoritos.

Cuando se reinicia la 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 arranque y luego periódicamente (digamos, cada 30 segundos más o menos). La secuencia de comandos debe verificar si el NAS está conectado, si no, inicie sesión en él. Compruebe si la carpeta/unidad está montada, si no, móntela. Luego verifique si está en la lista de favoritos y, si no, póngalo en favoritos.

De hecho, inicia sesión, monta y marca automáticamente la carpeta/unidad NAS cada vez.

Feliz de hacer el trabajo preliminar en el guión, pero si alguien tiene una sugerencia sobre dónde comenzar/idioma a usar/o incluso posiblemente una aplicación dedicada, 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 sistema operativo: macOS Sierra 10.12.1 (16B2555)

Pasos que necesitan ser automatizados

Respuestas (1)

Puedes hacer esto en el caparazón.

Inicie una Terminal, luego ejecute:

mount

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

//warren@10.0.15.2/Shared%20Network%20Volume

Eso es 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

Debe cambiar las variables en MAYÚSCULAS arriba.

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ó previamente, luego ejecute:

chmod 755 remount.sh
sudo ./remount.sh

Asegúrese de que esto monte el volumen correctamente. 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 eres ordenado, probablemente no quieras guardarlo allí.

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

Solución brillante, gracias, usé esto en ese momento, pero no pude responderte o marcar la respuesta. Gracias.