De belangrijkste voordelen van Rsync zijn:
- Snelheid: de eerste keer wordt de volledige inhoud tussen het lokale en het externe systeem gekopieerd. Daarna alleen de bytes en datablokken die zijn gewijzigd.
- Rsync comprimeert en decomprimeert tijdens de overdracht, wat minder bandbreedte kost.
- Rsync kan bestanden en mappen op de back-upserver opsporen en verwijderen wanneer die van de hoofdwebserver zijn verwijderd.
- Het houdt rekening met rechten, eigenaarschap en speciale attributen bij het kopiëren op afstand.
- Het ondersteunt ook het SSH-protocol om data versleuteld over te dragen, zodat je zeker weet dat alle data veilig is.
Rsync installeren
Het rsync-pakket moet zowel op het lokale als op het externe systeem geïnstalleerd zijn.
yum install rsync
Rsyncd luistert standaard op TCP-poort 873
Rsync-voorbeelden
Syntaxis:
rsysnc [options] source destination
- Twee mappen op de lokale computer synchroniseren — rsync -avzh /root/rpmpkgs /tmp/backups/
- Lokale host naar externe host synchroniseren — rsync -avz /home/userx/ remoteuser@remoteserver:/share/rsysnctest/
- Externe host naar lokale host synchroniseren — rsync -avzh remoteuser@remoteserver:/home/userx /tmp/backup
- Extern naar lokale host synchroniseren — rsync -avz remoteuser@remoteserver:/share/rsysnctest/ /home/userx/
- Externe host
naar lokale host synchroniseren via SSH — rsync -avzhe ssh remoteuser@remoteserver:/var/www/ /var/www - Voortgang tonen tijdens
de overdracht met rsync — rsync -avzhe ssh –progress /home/rpmpkgs remoteuser@remoteserver:/root/rpmpkgs - Bandbreedtelimiet instellen — rsync –bwlimit=100 -avzhe ssh /var/lib/rpm/ remoteuser@remoteserver:/root/tmprpm/
Rsync-opties
- -a, –archive — archiefmodus; behoudt eigenaar en groepen, tijdstempels, symbolische links en rechten, en werkt recursief.
- -r, –recursive — doorloopt mappen recursief
- -p, –perms — behoudt rechten
- -z, –compress — comprimeert bestandsdata tijdens de overdracht
- -n, –dry-run — toont wat er overgedragen zou worden
- -v, –verbose — uitgebreide uitvoer
- -e ssh — rsync over SSH; draagt data via een beveiligde, versleutelde verbinding over
Cron instellen om Rsync te automatiseren
Omdat we rsync met het SSH-protocol gebruiken, vraagt ssh om authenticatie. Geven we cron geen wachtwoord, dan werkt het niet. Om cron soepel te laten draaien moet je eerst ssh-aanmelding zonder wachtwoord voor rsync instellen.
Open het crontab-bestand met het volgende commando om een cronjob in te stellen.
crontab –e
Hieronder een voorbeeld om rsync elke 5 minuten te draaien en de data tussen twee webservers te synchroniseren.
*/5 * * * * rsync -avzhe ssh remoteuser@remoteserver:/var/www/ /var/www/