Vota questo articolo :
4,8/5 | 5 parere
Questo articolo vi è stato utile ?
Sì
No
Vous avez noté 0 étoile(s)
Procédure
Rsync consente di sincronizzare i file tramite la riga di comando, in modo da poter eseguire il backup dei file da un luogo all'altro sincronizzandoli in base all'origine.
Lo script seguente consente di eseguire un backup completo una volta al mese e un backup parziale una volta alla settimana.
Lo script seguente consente di impostare uno script di backup remoto con Rsync. Lo script verificherà la presenza della cartella di origine, verificherà l'accessibilità del server e creerà ogni mese una nuova cartella in cui inserirà un backup completo.
#!/bin/sh month=`date +%B` day=`date +%d-%m-%Y` hour=`date +%T` log="/home/user/logs_backups" local="/user/folder" remote="/files/backups_$month/" hostssh="ip_server" userssh="login" counter=5 retention=`date +%B --date='1 month ago'` name() { echo "-------------------------------------------------------------" > $log/$day_backup.log echo -e "$backup locale di $(data +%d-%B-%Y)" >> $log/$day_backup.log echo "-------------------------------------------------------------" >> $log/$day_backup.log }# Se la directory contenente i log non esiste, verrà creata.if [ ! -d $log ];allora mkdir $log fi# Verifichiamo la presenza della cartella sorgente E che il server risponda al pingrecus=$(ping -c $counter $hostssh | grep 'received' | awk -F',' '{ print $2 }' | awk '{print $1 }') > /dev/null 2>&1 if [[ ! -d $local ]] && [[[ $recus -eq 0 ]];then name echo -e "$giorno-ora :\n" >> $log/backup_$day.log echo -e "$local non esiste più o è inaccessibile.\nServer inaccessibile ($hostssh : $counter pacchetti trasmessi, $recus pacchetti ricevuti).\nNessun backup eseguito." >> $log/sauvegarde_$jour.log exit# Verifichiamo solo la presenza della cartella di origineelif [ ! -d $local ];then name echo -e "$jour-$heure : $local n'existe plus ou est inaccessible.\nAuc aucune sauvegarde effectuée." >> $log/sauvegarde_$jour.log exit# Viene testato solo il ping del serverelif [ $recus -eq 0 ];then name echo -e "$jour-$heure : Serveur inaccessible ($hostssh : $compteur paquets transmises, $recus paquets reçus).\nNessun backup effettuato". >> $log/sauvegarde_$jour.log exit fi echo "-------------------------------------------------------------" > $log/backup_day.log echo "Backup di $locale da $(data +%d-%B-%Y)" >> $log/backup_day.log echo "-------------------------------------------------------------" >> $log/backup_$day.log # Trasferire l'ora di inizio nel log echo "Ora di inizio del backup: $(data +%T)" >> $log/backup_$day.log echo "-------------------------------------------------------------" >> $log/backup_$day.log# Trasferimento di filersync -avz --stats --protect-args --delete-after -e ssh $local $userssh@$hostssh:$distant >> $log/backup_$day.log # -a : modalità di archiviazione (equivalente -rlptgoD ). # -z : compressione dei dati durante il trasferimento. -e : per specificare l'uso di ssh # -- stats : fornisce informazioni sul trasferimento (numero di file...). # --protect -args : se è necessario trasferire un nome di file che contiene spazi, è possibile specificarlo con questa opzione. # --delete-after : elimina i file che non esistono più nell'origine dopo il trasferimento nella cartella di destinazione. status=$? echo "" >> $log/day_backup.log# rsync return codescase $status in 0) echo Success >> $log/day_backup.log; 1) echo Syntax or usage error >> $log/day_backup.log; 2) echo Protocol incompatibility >> $log/day_backup.log;; 3) echo Errori durante la selezione dei file e delle directory di input/output >> $log/sauvegarde_$jour.log;; 4) echo Azione non supportata: tentativo di manipolare file a 64 bit su una piattaforma che non li supporta; oppure un'opzione supportata dal client ma non dal server. >> 5) echo Errore nell'avvio del protocollo client-server >> $log/sauvegarde_$jour.log;; 6) echo Daemon unable to write to log file >> $log/sauvegarde_$jour.log;; 10) echo Errore socket I/O >> $log/sauvegarde_$jour.log; 11) echo Errore file I/O >> $log/sauvegarde_$jour.log;; 12) echo Errore nel flusso di dati del protocollo rsync >> $log/save_$day.log;; 13) echo Errore con la diagnostica del programma >> $log/save_$day.log;; 14) echo Errore nel codice IPC >> $log/save_$day.log;; 20) echo SIGUSR1 o SIGINT ricevuto >> $log/save_$day.log;; 21) echo "An error returned by waitpid()" >> $log/save_$day.log;; 22) echo Errore nell'allocazione dei buffer di memoria principale >> $log/sauvegarde_$jour.log;; 23) echo Trasferimento parziale a causa di un errore >> $log/sauvegarde_$jour.log;; 24) echo Trasferimento parziale a causa della scomparsa di un file sorgente >> $log/sauvegarde_$jour.log;; 25) echo Il limite --max-delete è stato raggiunto >> $log/sauvegarde_$jour.log;; 30) echo Tempo di attesa massimo superato durante l'invio/ricezione di dati >> $log/sauvegarde_$jour.log;; 35) echo Tempo di attesa superato durante l'attesa di una connessione >> $log/sauvegarde_$jour.log;; 255) echo Errore inspiegabile >> $log/sauvegarde_$jour.log;; esac echo "-------------------------------------------------------------" >> Ora finale nel logecho "Ora fine backup: $(data +%T)" >> $log/backup_$day.log echo "-------------------------------------------------------------" >> $log/backup_$day.log# I backup vengono eliminati in base alla conservazione.ssh $userssh@$hostssh rm -rf "backups_$retention" exit
fonte : GitHub tuxmika
È ora possibile creare uno script di backup remoto utilizzando Rsync per trasferire file e cartelle al proprio spazio di backup online utilizzando LWS. È possibile eseguire lo script tramite un cron job in modo che venga avviato una volta alla settimana.
Non esitate a condividere le vostre domande e i vostri commenti!
Vota questo articolo :
4,8/5 | 5 parere
Questo articolo vi è stato utile ?
Sì
No
2mn lettura
Come si aggiunge una chiave RSA al servizio Rsync SCP?
1mn lettura
Come si usa Rsync per eseguire il backup di un sito web Ispconfig?
0mn lettura
Come faccio a fare il backup del mio sito con LWS Drive?
4mn lettura
utilità di ripristino di backup2l