Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Metodo di connessione
- # NOTA DA RIMUOVERE: per ora è e sarà disponibile soltanto ssh. Ma questa variabile verrà comunque utilizzata per le verifiche del caso, semmai successivamente si volesse andare oltre ssh...
- METHOD="ssh"
- # Server per la connessione
- SERVER="localhost"
- # Utente per la connessione ssh
- # NOTA DA RIMUOVERE: qui (o da qualche altra parte) andrebbe spiegato che prima di lanciare lo script, bisognerebbe sincerarsi che l'utente impostato abbia i permessi per lavorare sulla directory remota (successivamente indicata come RPATH) o comunque integrare nello script un controllo dei permessi sulla stessa
- USER="mirko"
- # Password per la connessione ssh
- # NOTA DA RIMUOVERE: qui (o da qualche altra parte) andrebbe correttamente spiegato che questa variabile può essere utilizzata per comodità, ma è che caldamente sconsigliata. Al contrario, sarebbe meglio lasciarla vuota e digitare manualmente la password o (ancora meglio) impostare l'autenticazione tramite chiave
- PWD="beta11"
- # Porta per la connessione ssh
- PORT="22"
- # Directory
- RPATH="backup"
- # Opzioni per la sincronizzazione di unison
- # -auto automatically accept default (nonconflicting) actions
- # -group synchronize group attributes
- # -maxerrors n maximum number of errors before a directory transfer is aborted
- # -owner synchronize owner
- # -retry n re-try failed synchronizations N times (text ui only)
- # -times synchronize modification times
- BOPTIONS="-auto -group -retry 3 -owner -times"
- #Colori
- RED="\e[1;31m" #Rosso
- GREEN="\e[1;32m" #Verde
- YELLOW="\e[1;33m" #Giallo
- RESET="\e[0m" #Reset!
- # Crea la directory e il file di log
- mkdir -p $HOME/.rsyncremote
- LOGFILE=$HOME/.rsyncremote/"`date +%d%m%y%H%M%S`.log"
- touch $LOGFILE
- chmod 744 $LOGFILE
- printScreen() { echo -e $1$RESET; }
- # Verifica la disponibilità di unison
- if ! unison -version &> /dev/null; then
- printScreen $RED"Errore: "$RESET"unison non è disponibile";
- exit 1
- fi
- # Verifica la disponibilità di ssh
- if [[ $METHOD -eq 'ssh' && `! which ssh &> /dev/null` ]]; then
- printScreen $RED"Errore: "$RESET"ssh non è disponibile";
- exit 1
- fi
- # Verifica la presenza del file source-files.list
- if [[ ! -e "source-files.list" ]]; then
- printScreen $RED"Errore: "$RESET"il source-files.list non è presente";
- exit 1
- # Se il file esiste...
- else
- # Instanzia la variabile e legge il file
- LPATH=" "
- while read line
- do
- # Accoda alla variabile ogni path indicata nel file
- LPATH=$LPATH" -path "${line};
- done < source-files.list
- fi
- # Verifica la disponibilità del server
- if ! ping -c 1 $SERVER &> /dev/null; then
- printScreen $RED"Errore: "$RESET"il server non è raggiungibile";
- exit 1
- fi
- # Verifica la disponibilità della connessione ssh
- if [[ $METHOD -eq 'ssh' && `! ssh -p $PORT $USER@$SERVER unison -version &> /dev/null` ]]; then
- printScreen $RED"Errore: "$RESET"la connessione ssh non è disponibile. Verifica i parametri di connessione nel file di configurazione";
- exit 1
- fi
- #Sincronizza
- unison $HOME ssh://$USER@$SERVER:$PORT/$RPATH $LPATH -logfile $LOGFILE $boptions
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement