Backup Linux desktop data using rsync

From wiki
Revision as of 11:15, 31 July 2010 by imported>Notessensei (Added Key generation and sample command)
Jump to navigation Jump to search

Linux servers and desktops can be backed up using the rsync protocol which is a core component of every Linux system. For and introduction check the rsync article on Wikipedia. The official documentation can be found on the Samba website. Rsync is an efficient protocol only sending changes. rsync does not encrypt transmissions, so a remote shell like SSH or RSH should be used in public network. There are a number of Tutorials available (here, here or here). This page describes the steps to setup rsync backup from a Linux machine to a Synology DiskStation.

ToDo:Currently the article is a stub which needs extension.

What to choose: native rsync or rsync via SSH/RSH?

Depending on your needs these are the decision criteria:

  • Speed
  • Security
  • Access control

ToDo: Elaborate

Setting up Synology for rsync

To enable backup via rsync the rsync deamon on the Synology needs to be activated and Sync targets need to be defined.

Activating rsync
Start your Synology DiskStation Manager. Go to Backup - Network Backup Service and check the box "Enable network backup service". Click OK - that's all.

Creating rsync targets
You need to edit the file /etc/rsyncd.conf. You can do that either by opening an SSH session into the DiskStation or using the Config File Editor Third party application. To use it you need to first edit the config File editor config itself and add the line /etc/rsyncd.conf (It seems you have to create the file before the Config File Editor will pick it up). You also might need a file /etc/rsyncd.secrets for users to use rsync connections

Sample file content (see also the full documentation)
ToDo: Add file content here and add explanations to the various entries

Setting up Synology for rsync via SSH/RSH

When using ssh no rsync deamon is used on the DiskStation. However you need to have a valid public / private key pair, so the DiskStation can recognize the Linux machine. Follow the following steps (adopted from here)

Generate they key pair

mkdir ~/.sshkeys
cd ~/.sshkeys
ssh-keygen -t dsa -b 1024 -f ~/.sshkeys/diskstation-rsync-key

Generating public/private dsa key pair. Enter passphrase (empty for no passphrase): [press enter here]
Enter same passphrase again: [press enter here]
Your identification has been saved in ... diskstation-rsync-key.
Your public key has been saved in ... diskstation-rsync-key.
( where ... stands for your directory )
chmod 600 diskstation-rsync-key

Transfer the keys
Use your file manager (e.g. Nautilus) to navigate to [YourUserName]@smb://diskstation/home/
Create a directory .ssh and copy diskstation-rsync-key.pub there.
Now open a SSH connection to the diskstation to continue:
ssh user@diskstation [Enter password here]
cd /volume1/homes/[YourUserName]/.ssh
ls -l

If there is already a "authorized_keys" file you skip the first line of the following code:

touch authorized_keys
cat diskstation-rsync-key.pub >> authorized_keys
rm diskstation-rsync-key.pub
chmod 600 authorized_keys
You can restrict the use of this key for specific commands or IP addresses (see here).
Exit from the SSH session. Now you are ready to test the keys with the following command:
ssh -i ~/.sshkeys/diskstation-rsync-key [YourUserName]@diskstation
If you get a ssh session without a password prompt the ssh connection using your new keys works.

Sample backup command
rsync --recursive --copy-links --times --verbose --progress -e "ssh -i ~/.sshkeys/diskstation-rsync-key" \
/home/[localusername] [YourUserName]@diskstation/volume1/homes/[YourUserName]/backup

TODO: Explain a little more

Backing up your Linux workstation using rsync

ToDo: Elaborate

GUI Tools using rsync for backup

Flyback rSync tool modeled after TimeMachine (Flyback on Google code)
QTDSync
GAdmin tool for rsync
ToDo: complete the list of Linux GUI applications using rsync.