Beoordeel dit artikel :
4,8/5 | 5 mening
Dit artikel was nuttig voor jou ?
Ja
Geen
Vous avez noté 0 étoile(s)
Procédure
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.
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
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 ?
Ja
Geen
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