Script / applicazione costanti per il controllo / montaggio di unità condivise

3

Mi chiedo dove sia un buon punto di partenza per questo problema. Credo che si possa ottenere usando la scrittura di Apple, ma devo ammettere che non ne conosco le capacità.

Scenario: ho un NAS che accedo a utilizzando Finder. Una volta effettuato l'accesso, sul NAS sono presenti due cartelle, quando faccio clic su una delle cartelle "SNAS" la monta su root (ad esempio, se I CMD + FRECCIA SU in alto, viene elencata accanto ad altre unità). Lo trascino quindi nella mia lista dei preferiti.

Quando il Mac viene riavviato, la connessione e il preferito sono persi e devo ripetere il processo.

Voglio che uno script venga eseguito automaticamente ad ogni avvio e periodicamente (ad esempio ogni 30 secondi circa). Lo script dovrebbe verificare se il NAS è collegato, in caso contrario, accedere ad esso. Controllare se la cartella / unità è montata, in caso contrario, montarla. Quindi controlla se è presente nell'elenco dei preferiti e, in caso contrario, lo preferisci.

In effetti, il login, il montaggio e l'accesso automatico alla cartella / unità NAS vengono eseguiti automaticamente ogni volta.

Felice di fare il lavoro sulle gambe nella sceneggiatura, ma se qualcuno ha un suggerimento su dove iniziare / la lingua da usare / o forse anche un'applicazione dedicata che sarebbe grandiosa non trovando nulla per la richiesta di nicchia sulle ricerche

Ho allegato una serie di immagini che mostrano i passaggi correnti in corso.

Dettagli del sistema operativo: macOS Sierra 10.12.1 (16B2555)

    
posta Craig McArthur 07.12.2016 - 14:35
fonte

1 risposta

1

Puoi farlo nella shell.

Avvia un terminale, quindi esegui:

mount

Trova la linea con il tuo volume e afferra la prima parte fino allo spazio. Dovrebbe assomigliare a:

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

Questo è il nome utente @ IP_OF_NAS / VolumeName

Ora qui è lo script, salvalo come "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

Devi modificare le variabili in tutti i CAPS precedenti.

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)

Smonta il volume di rete che hai precedentemente montato, quindi esegui:

chmod 755 remount.sh
sudo ./remount.sh

Assicurati che questo monti il volume OK. Ha funzionato bene sul mio MacBook con Sierra Time contro un Apple Time Capsule.

Ora, se tutto va bene, lo aggiungiamo a cron per eseguirlo come root (sudo) ogni 15 minuti.

sudo crontab -e

Aggiungi qualcosa di simile (stagione per gusto):

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

Noterai che ho salvato lo script nella mia home directory. Se sei in ordine, probabilmente non vuoi salvarlo lì.

Smontare il volume e attendere 15 minuti per vedere se riappare. In caso contrario, guarda il file di registro per vedere cosa succede.

    
risposta data 07.12.2016 - 19:24
fonte

Leggi altre domande sui tag