Come si crea uno script di backup remoto con Rsync?

Procédure

A cosa serve Rsync?

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.

Come si crea uno script di backup remoto con Rsync?

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

Conclusione

È 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 ?

Article utile

Article non utileNo

Vous souhaitez nous laisser un commentaire concernant cet article ?

Si cela concerne une erreur dans la documentation ou un manque d'informations, n'hésitez pas à nous en faire part depuis le formulaire.

Pour toute question non liée à cette documentation ou problème technique sur l'un de vos services, contactez le support commercial ou le support technique

MerciMerci ! N'hésitez pas à poser des questions sur nos documentations si vous souhaitez plus d'informations et nous aider à les améliorer.


Vous avez noté 0 étoile(s)

Articoli simili

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


Fate una domanda al team LWS e alla sua comunità