Rsync
Uit DeVliegendeWiki
rscync is een efficient programma om bestanden te copiëren, zowel locaal als over een internetverbinding.
De basisformulering:
rsync <switches> <bron> <doel>
Let op dat bij bron er een schuine streep aan het eind staat, die er bij doel niet staat.
rsync -auv ~/ /media/schijf
Inhoud |
Dropbox
In februari 2011 ervoer ik dat bij het copiëren van een home directory, de Dropbox-map niet werd meegenomen.
Foutmeldingen
Operation not permitted (1)
Deze foutmelding heeft betrekking op een rechtenprobleem. Bv.:
- rsync Probeert een bestand te lezen waar het geen toegang tot heeft;
- rsync Probeert een bestand te updaten waar het geen schrijfrechten op heeft.
rsync: link_stat "/media/SAMSUNG/.*" failed: No such file or directory (2)
Hierbij is media/SAMSUNG het backupmedium.
Mogelijke oorzaken:
- Fout met quotes [1]
- Permissieprobleem
Bronnen:
- Vergelijkbare problemen: [2]
Symlink ... failes: Operation not permitted (1)
[3]:
That usually means that the user running the rsync doesn't own the file on the receiving side, so rsync's attempt to change its group information failed.
Vervolgens het betreffende script als root uitgevoerd, en toen trad deze fout niet op
rsync: chown "/media/SAMSUNG/6/Desktop" failed: Operation not permitted (1)
Foutmeldingen & continuïteit
In februari 2011 maakte ik mee dat rsync stopte na een 'broken pipe'-foutmeling aangaande een oude Windows-backup.
Geopende bestanden copiëren
Onder Linux copiëert rsync geopende bestanden, omdat dat bepaald wordt door het os, en niet door rsync zelf. Je hebt echter geen garantie of het resultaat zinvol is. Bv. omdat je niet weet wat er wel of niet naar het bestand is geschreven.
Waarschijnlijk is het beter om per applicatie na te gaan wat de situatie is. Komt-ie:
- Tekstdocumenten: Geen probleem, want je hebt niet elke keer hetzelfde tekstdocument open, en al helemaal niet in dezelfde toestand;
- E-mail (Thunderbird): Als dit IMAP betreft, is dat ook weinig problematisch
Bronnen:
- http://forums11.itrc.hp.com/service/forums/questionanswer.do?admit=109447626+1296667231910+28353475&threadId=636257
- http://www.goodjobsucking.com/?p=62
Logs bijhouden
Voorbeeld 1
Commando
rsync <doel> <bron> > log.txt
Lijkt niet te werken: In het log.txt-bestand belandt een lange rij van geslaagde transfers, maar juist niet wat er niet goed ging. die belanden op het scherm.
Switches
-a
Archive: Een gecombineerde schakelaar die handig is voor archiveren. Deze schakelaar is een afkorting voor
rsync -rlptgoD
en houdt onder andere recursie in, en behoud van links.
--append
?
--delete
Verwijdert bestanden van de doellocatie als deze niet langer op de bronlocatie aanwezig zijn. Volgens mij is dat voor backups beslist niet handig: Als door een fout de bronlocatie leeg is, wordt automatisch de doellocatie ook gewist. Zie http://www.linuxquestions.org/questions/linux-software-2/rsync-didnt-exit-upon-error-833072/ ter illustratie hiervan.
Voor backups is deze optie niet aan te bevelen.
-e
Te gebruiken protocol.
Bv.:
rsync -e 'ssh -p 3000' -avl demo@123.45.67.890:/home /backup/
Hierbij wordt rscync over ssh toegepast met poortnummer 3000
--exclude
Een map uitsluiten van archiveren. Bv. alle dot-bestanden en dot-mappen overslaan:
rsync -va --exclude '.*' ~/ ~/Temp
-l
Behoudt links.
--progress
Toont voorgang per individueel bestand. Kan handig zijn bij copieren van grote bestanden.
--stats
Toont additionele info, bovenop verbose.
-u
Update: Copiëer alleen bestanden die nieuwer zijn op de bronlocatie dan op de doellocatie. Dat is wat je typisch bij een backup wilt hebben.
-v
Functie: Verbose: Commentaar geven tijdens uitvoering.
-z
Gebruik compressie voor snellere dataoverdracht
Voorbeelden
Voorbeeld 1
rsync -va ~/Dropbox ~/Temp
Hier copieert rsync de inhoud van map Dropbox naar map Temp, beiden in de home-directory. Hierbij:
- -v - Verbose
- -a - Archief
Voorbeeld 2
rsync -va --exclude '.*' --exclude 'Temp' ~/ ~/Temp
Hierbij wordt de home directory gecopieerd naar map Temp, met uitzondering van dotfiles en de directory Temp zelf
Voorbeeld 3
sudo rsync -avu --delete /home/strompf/ /media/SAMSUNG/06
- --delete deletes anything in the target folder that you've deleted in the original folder, which does stop you backup growing.
- -a = archive mode
- -v = verbose (only use it once and you'll get bored but it's fun the first time)
- -u =skip files that are newer on the receiver, this only works on subsequent times but does speed things up for subsequent backups.
Bron: http://ubuntuforums.org/showthread.php?t=592788
Voorbeeld 4
sudo rsync -au --append ~/ /destination-folder
Bron: http://ubuntuforums.org/showthread.php?t=592788
Vraagstukken
- Worden geopende bestanden ook gecopiëerd? > Zie elders in dit artikel
- Dropbox-bestanden leken niet gecopiëerd te worden. Klopt dat?
- Wat gebeurt er bij een foutmelding? Gaat rsync dan door?
- Kun je logs aanmaken?
Bronnen
- http://troy.jdmz.net/rsync/index.html
- http://tdrusk.blogspot.com/2009/03/dropbox-with-rsync-my-simple-script-to.html - Met handige voorbeelden
- http://articles.slicehost.com/2007/10/9/backing-up-your-files-with-rsync - Voorbeelden
- http://articles.slicehost.com/2007/10/10/rsync-exclude-files-and-folders - Voorbeelden, wo. omtrent exclude & exclude-filelists
- http://samba.anu.edu.au/ftp/rsync/rsync.html - Complete handleiding?
- http://transamrit.net/docs/rsync/ - Geavanceerde instellingen
- http://optics.csufresno.edu/~kriehn/fedora/fedora_files/f12/howto/rsync.html - Uitgebreid backup-voorbeeld
