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/