Script di shell su rsync o se non montato - mount e rsync

1

Questo è quello che ho ottenuto finora:

! / Bin / sh

Backup cartella di archiviazione

Definisce il punto di montaggio

LOCALMOUNTPOINT="/Volumes/thisisanetworkshare"

Controlla montaggio

if mount | grep "on $LOCALMOUNTPOINT" > /dev/null; then

Se già montato avvia il processo rsync

caffeinate -i rsync -av /Users/auser/storage/ /Volumes/thisisanetworkshare/ --log-file=/Users/auser/rsync.log

Altrimenti monta e avvia il processo rsync

else
    mkdir thisisanetworkshare
    mount_smbfs //thisnetwork/thisisanetworkshare /Volumes/thisisanetworkshare
    caffeinate -i rsync -av /Users/auser/storage/
    /Volumes/thisisanetworkshare/ --log-file=/Users/auser/rsync.log
fi

Quindi in pratica voglio avviare un rsync se la condivisione di rete è già montata, ma se non lo è, vorrei montare quella condivisione di rete e avviare un rsync.

La condivisione di rete richiede l'autenticazione ma questa viene salvata nel portachiavi quindi non la richiede nel Finder. Questo è importante per uno script di shell?

Grazie in anticipo!

    
posta rupertbg 27.07.2015 - 02:42
fonte

1 risposta

0

Utilizzando la corretta sintassi normale della versione della riga di comando del comando mount dalla riga di comando o di uno script bash per una condivisione SMB protetta da password, sarà necessario immettere la password, in un modo o nell'altro. Tuttavia, da uno script bash o da una riga comandi esiste un modo per accedere alla password del portachiavi memorizzata per montare SMB Share senza inserire la password nello script bash o dalla riga di comando.

Quanto segue presuppone che sia il nome utente che la password di autenticazione per la share SMB target siano memorizzati nel portachiavi dell'utente.

Poiché il nome utente e la password di autenticazione per la share SMB target sono memorizzati nel portachiavi dell'utente, il montaggio della share SMB target può essere effettuato tramite AppleScript all'interno dello script bash o della riga di comando utilizzando il comando osascript .

Nell'esempio seguente ho condiviso la cartella Temp su un altro sistema sulla mia rete avente l'indirizzo IP: 192.168.169.227

L'ho montato per la prima volta tramite il menu Vai del Finder > Connetti al server ... dove ho selezionato la casella di controllo "Ricorda questa password nel mio portachiavi" in modo che sia memorizzata nel portachiavi. Fatto ciò, ho smontato la condivisione e ho usato il seguente comando per montarlo da uno script bash.

osascript -e 'tell application "Finder" to mount volume "smb://192.168.169.227/Temp"'

Non avevo bisogno di pre-creare la cartella "/ Volumes / Temp" poiché questo metodo viene eseguito automaticamente da questo metodo, diversamente dal comando mount -t smbfs //... normalmente dove il punto di mount fornito deve esistere già.

Così come scrivi il tuo script bash usa questo metodo al posto della normale versione da riga di comando del comando mount .

    
risposta data 27.07.2015 - 04:15
fonte

Leggi altre domande sui tag