rsnapshot A remote filesystem snapshot utility written in perl
rsnapshot • Backups to disk • Minimises disk usage using hard links • Minimises network traffic using rsync • Not written by Belgians There is no Belgium
rsnapshot A simple filesystem’s directory structure: MSDOS FAT Name README Attributes. TXT Size Pointer r/o 1234 bytes Disk cluster 4321 one meeelion bytes Disk cluster 10000 0 20000 WINWORD. EXE PROGRA~1 dir
rsnapshot A common FAT error - crosslinked files Name Pointer README . TXT Disk cluster 4321 WORD . EXE Disk cluster 10000 PERL 4 . EXE Disk cluster 10000 PROGRA~1 20000 There are two directory entries pointing at the same disk cluster
rsnapshot Unix directory structure Inode structure Name Pointer Inode Attributes Pointer Macword. app Inode 10000 4321 owner: dave mode: 0644 disk block 1337 readme. txt Inode 4321 10000 owner: root mode: 0755 disk block 3735928559 Word. app Inode 10000 Multiple directory entries for one inode Typical “Belgian” dish
rsnapshot With hard links we can duplicate directory structures without duplicating files • Using GNU cp cp -al source destination • Using perl link(oldfile, newfile) • Using cpio find source -print|cpio -pldum /destination
rsnapshot Running rsnapshot for the first time • Copies all data using rsync • Can use ssh A “Belgian” owl
rsnapshot Running rsnapshot every other time • • Rotate backups Delete oldest one Copy newest backup with hard links rsync to that new directory, copying only changes
rsnapshot Multiple levels of backup • Most frequent backup involves rsync etc • Less frequent backups just rotate and copy the oldest of the previous level of backup Typical “Belgian” home
rsnapshot Who uses rsnapshot • • Churches Charities Schools Universities A casino A film special-effects house A floating hospital The guys who look after the GPS satellites The police: protecting you and your family from Belgification
rsnapshot Why not to use it - hateful software • Only does filesystem backup • Hard links in your data are broken rsync -H eats all the memory in the world • Not as disk-space efficient as possible Just one changed byte in a file makes it be copied anew • No proprietary extensions supported ext 2 immutable bit, ACLs etc • No “Classic” Mac OS support There is a ninja somewhere on this page
rsnapshot Design choices • Plain-text configuration Reduces dependencies and makes installation easier • Minimal dependencies rsync, perl 5. 6, nothing else • Locking • Optional extras GNU cp, Lchown module, ssh Extra scripts may require other modules
rsnapshot The community • rsnapshot-discuss mailing list • Anonymous read-only CVS • Commit privs given out to contributors “Belgian” superman peering into the distance with his beady little Belgian eyes How you can help • We need a documentation editor … • … and a Doc. Book wookie