Eindelijk Rsync
Ik heb dus toch eindelijk een werkend backupscript met rsync , gebruikmakend van automatische SSH-login (zie mijn vorige post over wachtwoordeloze SSH-login ) . Het script maakt een backup van mijn homedir op Atlas naar mijn NAS siknas. Het logt automatisch in via SSH om de bestanden over te dragen . Het maakt geen gebruik van rsync die in daemon-mode draait op de bestemmingsmachine. Het script heb ik zonder enige scrupules gejat A tutorial on using rsync . het script zoals voor mij werkt, ziet er zo uit.
rsync --verbose --progress --stats --compress \ --recursive --times --perms --links --delete \ --exclude "*bak" --exclude '.DS_Store' --exclude "*~" \ /home/paul/* siknas:/shares/internal/ZOOI/backup/atlas
en dit werkt zonder meer op mijn gehackte Western Digital MyBook 500 GB NAS. Eerdere pogingen om een consistente automatische geen-omkijken-naar backup te verwezenlijken mislukten , ondanks mooie tools die voorhanden zijn, zoals Flyback.
We lopen even door de opties:
- —verbose –progress -stats laten meer informatie zien, de voortgang en de totalen op het eind.
- –compress zorgt voor compressie
- –recursive duikt in alle subfolders
- –times –perms –links zorgen dat bestandstijden en permissies worden gekopieerd en dat links gevolgd worden.
- –delete wist alle bestanden in het doelpad die niet bestaan in het bronpad.
- –exclude “*bak” –exclude ‘.DS_Store’ –exclude “*~” sluit bepaalde bestanden uit, te weten alle veelvoorkomende backups *bak en .DS_Store van het Mac filesysteem en met *~ alle backups van vi.
- tenslotte met /home/paul/* siknas:/shares/internal/ZOOI/backup/atlas wordt het bronpad en het doelpad aangegeven. De notatie “siknas:/shares/internal/ZOOI/backup/atlas” duidt aan dat dit pad zich bevindt op machine siknas, waarmee wordt verbonden met behulp van SSH.
Deze optie zijn allemaal gegeven in de lange vorm. Uiteraard kun je ook de korte een-letter-notatie geven. Voer “rsync –help” of “man rsync” uit voor meer informatie over de mogelijke opties en parameters van het commando.
De verbinding die rsync maakt met de andere machine loopt via SSH of vai rsync in daemonmode. De andere machine draait dan rsync –daemon en de lokale rsync maakt rechtstreeks verbinding daarmee. In /etc/rsync.conf wordt een zgn. “module” geconfigureerd of “path” in rsync-terminologie, waaraan gerefereerd wordt met een naam. In rsyncd.conf wordt dat bijvoorbeeld zo gedefinieerd:
[atlasmirror] path = /shares/internal/ZOOI/backup/atlas comment = "Sikkepitjes Atlas mirror" uid = root gid = root read only = no list = yes ; auth users = paul secrets file = /etc/rsyncd.scrt
Hierbij is atlasmirror de naam van de module. Rsync wordt dan gestart als
rsync (opties) /home/paul/* siknas::atlasmirror
Hierbij wordt als bestemming het “path” met de naam atlasmirror op de machine siknas aangeduid. De overdracht gaat hier niet via ssh of rsh, maar via rsync zelf. Omdat hierbij geen encryptie wordt gebruikt, is de overdrachtssnelheid vele malen groter. Een onversleutelde overdracht als deze is natuurlijk alleen aan te raden op een LAN, en niet via internet.
De voordelen va rsync staan beschreven in dit artikel op lifehacker.com .
