Hoe maak ik een extern back-upscript met Rsync?

Procédure

Waar wordt Rsync voor gebruikt?

Met Rsync kun je bestanden synchroniseren via de opdrachtregel, zodat je een back-up kunt maken van bestanden van de ene plaats naar de andere door ze te synchroniseren volgens bron.

Met het onderstaande script kun je één keer per maand een volledige back-up maken en één keer per week een gedeeltelijke back-up.

Hoe maak ik een remote backup script met Rsync?

Met het volgende script kun je een remote backup script met Rsync opzetten. Het script test de aanwezigheid van de bronmap, test de toegankelijkheid van de server en maakt elke maand een nieuwe map aan waarin het een volledige back-up plaatst.

#!/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 "$local backup van $(datum +%d-%B-%Y)" >> $log/$day_backup.log echo "-------------------------------------------------------------" >> $log/$day_backup.log }# Als de map met de logs niet bestaat, wordt hij aangemaakt.if [ ! -d $log ];then mkdir $log fi# We testen de aanwezigheid van de bronmap EN of de server reageert op de pingrecus=$(ping -c $counter $hostssh | grep 'ontvangen' | 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 bestaat niet meer of is ontoegankelijk.\nServer ontoegankelijk ($hostssh : $counter pakketten verzonden, $recus pakketten ontvangen).\nGeen back-up uitgevoerd." >> $log/sauvegarde_$jour.log exit# We testen alleen de aanwezigheid van de bronmapelif [ ! -d $local ];then name echo -e "$jour-$heure : $local n'existe plus ou est inaccessible.\nGeen backup uitgevoerd." >> $log/sauvegarde_$jour.log exit# Alleen de server ping wordt getestelif [ $recus -eq 0 ];then name echo -e "$jour-$heure : Serveur onbereikbaar ($hostssh : $compteur paquets transmises, $recus paquets reçus).\nGeen backup gemaakt." >> $log/sauvegarde_$jour.log exit fi echo "-------------------------------------------------------------" > $log/backup_day.log echo "Back-up van $local vanaf $(datum +%d-%B-%Y)" >> $log/backup_day.log echo "-------------------------------------------------------------" >> $log/backup_$day.log #Begintijd overbrengen in log echo "Begintijd back-up: $(datum +%T)" >> $log/backup_$day.log echo "-------------------------------------------------------------" >> $log/backup_$day.log# Bestandsoverdrachtrsync -avz --stats --protect-args --delete-after -e ssh $local $userssh@$hostssh:$distant >> $log/backup_$day.log # -a : archiefmodus ( equivalent -rlptgoD ). # -z : gegevenscompressie tijdens overdracht.
-e : om het gebruik van ssh op te geven # -- stats : geeft informatie over de overdracht (aantal bestanden...). # --protect -args : Als je een bestandsnaam moet overzetten die spaties bevat, kun je dat met deze optie opgeven. # --delete-after : verwijdert bestanden die niet meer bestaan in de bron na de overdracht naar de doelmap.
status=$? echo "" >> $log/day_backup.log# rsync return codescase $status in 0) echo Success >> $log/day_backup.log; 1) echo Syntax of gebruiksfout >> $log/day_backup.log; 2) echo Protocol incompatibiliteit >> $log/day_backup.log;; 3) echo Fouten bij het selecteren van bestanden en input/output directories >> $log/sauvegarde_$jour.log;; 4) echo Actie niet ondersteund: een poging om 64-bit bestanden te manipuleren op een platform dat deze niet ondersteunt ; of een optie die wordt ondersteund door de client maar niet door de server. >> 5) echo Fout bij starten client-server protocol >> $log/sauvegarde_$jour.log;; 6) echo daemon kan niet naar logbestand schrijven >> $log/sauvegarde_$jour.log;; 10) echo I/O socket fout >> $log/sauvegarde_$jour.log; 11) echo I/O bestandsfout >> $log/sauvegarde_$jour.log;; 12) echo Fout in rsync protocol datastroom >> $log/save_$day.log;; 13) echo Fout met programma diagnostiek >> $log/save_$day.log;; 14) echo Fout in IPC code >> $log/save_$day.log;; 20) echo SIGUSR1 of SIGINT ontvangen >> $log/save_$day.log;; 21) echo "Een fout geretourneerd door waitpid()" >> $log/save_$day.log;; 22) echo Fout bij het toewijzen van hoofdgeheugenbuffers >> $log/sauvegarde_$jour.log;; 23) echo Gedeeltelijke overdracht door een fout >> $log/sauvegarde_$jour.log;; 24) echo Gedeeltelijke overdracht door het verdwijnen van een bronbestand >> $log/sauvegarde_$jour.log;; 25) echo De --max-delete limiet is bereikt >> $log/sauvegarde_$jour.log;; 30) echo Maximale wachttijd overschreden bij het verzenden/ontvangen van gegevens >> $log/sauvegarde_$jour.log;; 35) echo Wachttijd overschreden bij het wachten op een verbinding >> $log/sauvegarde_$jour.log;; 255) echo Onverklaarbare fout >> $log/sauvegarde_$jour.log;; esac echo "-------------------------------------------------------------" >> Eindtijd in logecho "Eindtijd back-up: $(datum +%T)" >> $log/backup_$day.log echo "-------------------------------------------------------------" >> $log/backup_$day.log# Backups worden verwijderd volgens retentie.ssh $userssh@$hostssh rm -rf "backups_$retentie" exit

bron : GitHub tuxmika

Conclusie

Je kunt nu een remote backup script maken met Rsync om bestanden en mappen over te zetten naar je online backup ruimte met LWS. Je kunt je script uitvoeren via een crontaak zodat het eens per week start.

Aarzel niet om je vragen en opmerkingen te delen!

Beoordeel dit artikel :

4,8/5 | 5 mening

Dit artikel was nuttig voor jou ?

Article utileJa

Article non utileGeen

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)

Vergelijkbare artikelen

2mn lezen

Hoe voeg ik een RSA-sleutel toe aan de Rsync SCP drive service?

1mn lezen

Hoe gebruik ik Rsync om een back-up te maken van een Ispconfig-website?

0mn lezen

Hoe maak ik een back-up van mijn site met LWS Drive?

4mn lezen

backup2l herstelprogramma


Stel een vraag aan het LWS-team en de gemeenschap