Difference between revisions of "Versions backup med rsync"
Line 13: | Line 13: | ||
Mit guide er min billede mappe på min Qnap nas. | Mit guide er min billede mappe på min Qnap nas. | ||
+ | ==Forberedelse== | ||
For at det virker kræver det selvfølgelig at man har kopieret nøglen fra '''/root/.ssh/ssh_host_rsa_key.pub''' op i '''authorized_keys'''. | For at det virker kræver det selvfølgelig at man har kopieret nøglen fra '''/root/.ssh/ssh_host_rsa_key.pub''' op i '''authorized_keys'''. | ||
+ | |||
+ | Start med at opret en tom current mappe i backup-folderen på rsync serveren, på den måde vil den første backup antage at alle filer mangler og lave en fuld backup, slette den tomme current mappe og linke ny current til ny backup. Og vi er klar til næste run. | ||
==Backup script== | ==Backup script== |
Revision as of 09:25, 20 February 2013
af Tommy d. 20. feb. 2013
Lavet i forbindelse med backup projketet : SFTP chroot + rsync
Ide og koncept
Jeg ønsker at tage backup af min mappe med Billeder på min NAS, jeg ønsker at kunne gå tilbage i tiden i tilfælde af at jeg overskriver eller ændre på et billede. Derfor skal den daglige backup have en mappe med dato og klokkeslet.
Det normale problem er at så vil hver backup fylde som en ny kopi hverdag og ende med at fylde enormt.
Løsningen er at rsync kan basere den igangværende backup på en tidligere kopi på serveren, og så hardlinker alle ens filer til den tidligere backup, og på den måde fylder kun de nye og ændrede filer.
Der er en smule overhead på ca. 4kbytes per hardlink (filsystem inode), men det er billigt sluppet.
Mit guide er min billede mappe på min Qnap nas.
Forberedelse
For at det virker kræver det selvfølgelig at man har kopieret nøglen fra /root/.ssh/ssh_host_rsa_key.pub op i authorized_keys.
Start med at opret en tom current mappe i backup-folderen på rsync serveren, på den måde vil den første backup antage at alle filer mangler og lave en fuld backup, slette den tomme current mappe og linke ny current til ny backup. Og vi er klar til næste run.
Backup script
backup.sh:
#!/bin/sh DATE=`date "+%Y-%m-%d_%H-%M-%S"` CURRENT=/files/AmstrupNAS/Billeder/current FOLDER=/files/AmstrupNAS/Billeder/$DATE rsync -azP --bwlimit 60 --link-dest=$CURRENT /share/Public/Billeder/ user01@rsync.todic.net:$FOLDER ssh user01@rsync.todic.net "rm -r $CURRENT && ln -s $FOLDER $CURRENT"
Jeg har valgt at tage klokkeslet med også, så kan jeg kalde scriptet hver time eller ved særlige lejligheder hvis det skulle blive aktuelt.
Credits
Lavet med udgangspunkt i denne guide : http://blog.interlinked.org/tutorials/rsync_time_machine.html