Backup Linux desktop data using rsync
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:
- Access control
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.
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
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
If you want to connect without using a passphrase, you must not enter any passphrase when ask (just it the "Enter" key)
Transfer the keys
First, you will have to enable the "homes" directory" through your Synology web interface. (all "homes" are created under directory /volume1/homes/) Use your file manager (e.g. Nautilus) to navigate to
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]
If there is already a "authorized_keys" file you skip the first line of the following code:
You can restrict the use of this key for specific commands or IP addresses (see here).
cat diskstation-rsync-key.pub >> authorized_keys
chmod 600 authorized_keys
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" \
- Connect through SSH to your Synology, using the set of key you previously created
- Copy recursively all from /home/[localusername] to your Synology, within /volume1/homes/[YourUserName]/backup directory (no need to create "backup")
- Copy referents to symbolic links
- Preserve ties from your files
- Show you the progress from copy (not useful if you are running it with a cron)
TODO: Explain a little more
Backing up your Linux workstation using rsync
GUI Tools using rsync for backup
Synchronize Sabnzbd and Synology
If you have a server somewhere with Sabnzbd on it and you want to move what you downloaded from the server to your Synology, please have a look to blog entry