HomePDF  

Backup with RSYNC

Posted on 16 January 2011. Last updated on 25 July 2012.

 

This is a tutorial to install rsyncd on Gentoo.
rsyncd version: 3.0.7
gentoo kernel: 2.6.30-gentoo-r4


As Gentoo compiles everything it can takes some time. You might want to use screen, so you don't have to leave a console open.


To install on gentoo just emerge the necessary packages.
You might want to sync the emerge database first:


emerge --sync

Then emerge

emerge net-misc/rsync


As emerge compiles and installs everything, you only need to configure.


You should find the config-file in: /etc/rsyncd.conf.
You might need to create the /etc/rsyncd.secret file.
This holds the usernames and passwords.


Password-file
You can simply edit the password file with:

nano /etc/rsyncd.secret

The format is very simple:

backup_user:password

You don't have to use users from the system, Actually it is even better if they are totally different users.


As it is a password file make sure it is only readable by root!

ls -la /etc/rsyncd.secret
-rw------- 1 root root 22 Nov 19 17:53 /etc/rsyncd.secret

You can adapt the permissions it with the following command:

chmod 600 /etc/rsyncd.secret



rsyncd-conf file
There are a lot of option you can set in the config-file.
Here is a short example:

# This line is required by the /etc/init.d/rsyncd script
pid file = /var/run/rsyncd.pid
uid = root
gid = root
use chroot = yes

motd file = /usr/local/etc/rsync.motd
log file = /var/log/rsyncd.log
pid file = /var/log/rsyncd.pid
lock file = /var/log/rsyncd.lock
transfer logging = true


# Simple example for enabling your own local rsync server
#[gentoo-portage]
# path = /usr/portage
# comment = Gentoo Portage tree
# exclude = /distfiles /packages

[backup]
path = /var/share/backup/
read only = no
list = yes
auth users = backup_user
secrets file = /etc/rsyncd.secret
comment = Rsync backup module
hosts allow = 192.168.1.0/24



There are 2 main section. The general section and 1 for each "share".
In the general section, you shouldn't change anything.
It config the user of the daemon and the loging, process-id-file, ...


Gentoo sets standard a share for portage. If you don't use it, you can comment it out, like I did.


The important part of the example is the following part:

[backup]
path = /var/share/backup/
read only = no
list = yes
auth users = backup_user
secrets file = /etc/rsyncd.secret
comment = Rsync backup module
hosts allow = 192.168.1.0/24

Most of the settings explain themselves.
[backup]: is the name of the share. You can have several shares, but not with the same name.
path = /var/share/backup/: Is the directory on where all the files will be on the server.
read only = no: if the share/module needs to be read only. Because we want to backup to server, it is no in our case.
list: if it should be listed when clients ask for a list of available shares.
auth users = backup_user: Which users can access the share. User should be in "secrets file".
secrets file = /etc/rsyncd.secret: The location of the secrets file.
comment = Rsync backup module: A comment that explains what the share is about.
hosts allow = 192.168.1.0/24: which host(range) are allowed access.


Now we need to start the server:

#(Start the daemon now)
/etc/init.d/rsyncd start
#(Add the daemon to your default run-level)
rc-update add rsyncd default


Now we have setup the server side. On the client side we only need rsync installed.


Client side
Linux
On a linux-machine it is easy to start the backup.
Of course we need to install rsync first:
on gentoo:

sudo emerge net-misc/rsync

On Ubuntu, Debian, ...

sudo apt-get install rsync


The simple command to start the backup:

rsync -a /home/username/ rsync://backup_user@192.168.1.1/backup/

The first time it can last a while, because everything needs to be copied.<br>
But after that it goes really fast :-)

If you want to see what happens you can add -v.

rsync -va /home/username/ rsync://backup_user@192.168.1.1/backup/


You can also backup just a part. For example:

rsync -a /home/username/Documents rsync://backup_user@192.168.1.1/backup/Documents


You probably want to automate the backup task with a script.
Consider the option --password-file=pass.txt.
This allows to use a password, without storing it in your script. You still store it in a file on the client, so it isn't exactly save.

You can also sync the files between 2 directories.
A mounted USB-drive for example:

rsync -a /home/username/Documents /mnt/usb/Documents



Windows
There are several windows version.
DeltaCopy, QtdSync, Syncrify and RsyncBackup (client only).

Try them and see what works best for you.

 

TOP