Hur skapar jag ett fjärrbackupskript med Rsync?

Procédure

Vad används Rsync till?

Med Rsync kan du synkronisera filer via kommandoraden så att du kan säkerhetskopiera filer från en plats till en annan genom att synkronisera dem enligt källa.

Med skriptet nedan kan du utföra en fullständig säkerhetskopiering en gång i månaden och en partiell säkerhetskopiering en gång i veckan.

Hur skapar jag ett skript för fjärrbackup med Rsync?

Följande skript gör det möjligt för dig att skapa ett fjärrbackupskript med Rsync. Skriptet testar om källmappen finns, testar serverns tillgänglighet och skapar en ny mapp varje månad som det lägger in en fullständig säkerhetskopia i.

#!/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 "$lokal säkerhetskopia av $(datum +%d-%B-%Y)" >> $log/$day_backup.log echo "-------------------------------------------------------------" >> $log/$day_backup.log }# Om katalogen som innehåller loggarna inte finns kommer den att skapas.if [ ! -d $log ];then mkdir $log fi# Vi testar att källmappen finns OCH att servern svarar på 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 "$day-$hour :\n" >> $log/backup_$day.log echo -e "$local finns inte längre eller är otillgänglig.\nServern är otillgänglig ($hostssh : $counter paket skickade, $recus paket mottagna).\nIngen säkerhetskopiering utförd." >> $log/sauvegarde_$jour.log exit# Vi testar bara om källmappen finnselif [ ! -d $local ];then name echo -e "$jour-$heure : $local n'existe plus ou est inaccessible.\nAuc aucune sauvegarde effectuée." >> $log/sauvegarde_$jour.log >> $log/sauvegarde_$jour.log exit# Endast serverns ping testaselif [ $recus -eq 0 ];then name echo -e "$jour-$heure : Serveur inaccessible ($hostssh : $compteur paquets transmises, $recus paquets reçus).\nNo backup made." >> $log/sauvegarde_$jour.log >> $log/sauvegarde_$jour.log exit fi echo "-------------------------------------------------------------" > $log/backup_day.log echo "Säkerhetskopia av $local från $(datum +%d-%B-%Y)" >> $log/backup_day.log echo "-------------------------------------------------------------" >> $log/backup_$day.log # Överför starttid i loggen echo "Backup start time: $(date +%T)" >> $log/backup_$day.log echo "-------------------------------------------------------------" >> $log/backup_$day.log# Filöverföringrsync -avz --stats --protect-args --delete-after -e ssh $local $userssh@$hostssh:$distant >> $log/backup_$day.log # -a : arkivläge (motsvarande -rlptgoD) # -z : datakomprimering under överföringen.
-e : för att ange användning av ssh # -- stats : ger information om överföringen (antal filer ...). # --protect -args : Om du behöver överföra ett filnamn som innehåller mellanslag kan du ange det med det här alternativet. # --delete-after : raderar filer som inte längre finns i källan efter överföring till målmappen.
status=$? echo "" >> $log/day_backup.log# rsync returkodercase $status in 0) echo Success >> $log/day_backup.log; 1) echo Syntax- eller användningsfel >> $log/day_backup.log; 2) echo Protokollinkompatibilitet >> $log/day_backup.log;; 3) echo Fel vid val av filer och inmatnings-/utmatningskataloger >> $log/sauvegarde_$jour.log;; 4) echo Åtgärd som inte stöds: ett försök att manipulera 64-bitarsfiler på en plattform som inte stöder dem; eller ett alternativ som stöds av klienten men inte av servern. >> 5) echo Error starting client-server protocol >> $log/sauvegarde_$jour.log;; 6) echo daemon unable to write to log file >> $log/sauvegarde_$jour.log;; 10) echo I/O socket error >> $log/sauvegarde_$jour.log; 11) echo I/O file error >> $log/sauvegarde_$jour.log;; 12) echo Error in rsync protocol data stream >> $log/save_$day.log;; 13) echo Error with program diagnostics >> $log/save_$day.log;; 14) echo Fel i IPC-kod >> $log/save_$day.log;; 20) echo SIGUSR1 eller SIGINT mottagen >> $log/save_$day.log;; 21) echo "An error returned by waitpid()" >> $log/save_$day.log;; 22) echo Fel vid allokering av huvudminnesbuffertar >> $log/sauvegarde_$jour.log;; 23) echo Delvis överföring på grund av ett fel >> $log/sauvegarde_$jour.log;; 24) echo Delvis överföring på grund av att en källfil försvann >> $log/sauvegarde_$jour.log;; 25) echo Gränsen --max-delete har nåtts >> $log/sauvegarde_$jour.log;; 30) echo Maximal väntetid överskreds vid sändning/mottagning av data >> $log/sauvegarde_$jour.log;; 35) echo Väntetid överskreds i väntan på en anslutning >> $log/sauvegarde_$jour.log;; 255) echo Oförklarligt fel >> $log/sauvegarde_$jour.log;; esac echo "-------------------------------------------------------------" >> Sluttid i loggen echo "Backup" >> Sluttid i loggen echo "Backup end time: $(date +%T)" >> $log/backup_$day.log echo "-------------------------------------------------------------" >> $log/backup_$day.log# Säkerhetskopior raderas enligt retention.ssh $userssh@$hostssh rm -rf "backups_$retention" exit

källa : GitHub tuxmika

Slutsats

Du kan nu skapa ett fjärrbackupskript med hjälp av Rsync för att överföra filer och mappar till ditt onlinebackuputrymme med hjälp av LWS. Du kan köra ditt skript via ett cron-jobb så att det startar en gång i veckan.

Tveka inte att dela med dig av dina frågor och kommentarer!

Betygsätt denna artikel :

4,8/5 | 5 Yttrande

Den här artikeln var användbar för dig ?

Article utileJa

Article non utileNej

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)

Liknande artiklar

2mn läsning

Hur lägger jag till en RSA-nyckel i tjänsten Rsync SCP Drive?

1mn läsning

Hur använder jag Rsync för att säkerhetskopiera en Ispconfig-webbplats?

0mn läsning

Hur gör jag en säkerhetskopia av min webbplats med LWS Drive?

4mn läsning

backup2l återställningsverktyg


Ställ en fråga till AWS-teamet och dess community