Rsync server and client – backup your server files
rsync can synchronizes files and directories from one server to another. It’s perfectly for backup or create a mirror site purpose.
This tutorial shows you step by step to create a rsync server and client server.
First of all, you must have rsync installed. For fedora, rsync should be included by default. If you don’t have it, run
1 | yum install rsync |
Setup rsync server
Create rsync configuration file:
1 2 3 4 5 6 7 | cd /etc mkdir rsyncd cd rsyncd touch rsyncd.conf touch rsyncd.motd touch rsyncd.user chmod 600 rsyncd.user |
edit rsyncd.user file and create username and password:
vi /etc/rsyncd/rsyncd.user
1 | my_rsync_user_1:user_1_password |
edit rsyncd.conf file:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | pid file=/var/run/rsyncd.pid port=873 uid=root gid=root use chroot=yes read only=yes # limit access to LANS hosts allow=192.168.2.0/255.255.255.0 #default, listen to lan server host deny=* max connections=5 motd file=/etc/rsyncd/rsyncd.motd log format=%t%a%m%f%b syslog facility=local3 timeout=300 [profile_1] #profile name path = /path/to/backup/directory ignore errors read only = false list = false hosts allow = 66.66.66.66 #listen to client server which use public ip hosts deny = 0.0.0.0/32 auth users = my_rsync_user_1 secrets file = /etc/rsyncd/rsyncd.user #[profile_1] #another profile name #path = /path/to/backup/directory/2 #ignore errors #read only = false #list = false #hosts allow = 88.88.88.88 #listen to client server which use public ip #hosts deny = 0.0.0.0/32 #auth users = my_rsync_user_2 #secrets file = /etc/rsyncd/rsyncd.user |
Next, create init start up script
vi /etc/init.d/rsyncd
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | #!/bin/sh # # Startup script for rsyncd daemon # # chkconfig: 35 90 10 # description: Server data for sync to other server # processname rsync # Source function library . /etc/rc.d/init.d/functions prog=rsync conf=/etc/rsyncd/rsyncd.conf case "$1" in start) echo -n "Starting rsync daemon: " daemon /usr/bin/$prog --daemon --config=$conf RETVAL=$? echo [ $RETVAL = 0 ] && touch /var/lock/subsys/$prog ;; stop) echo -n "Shutting down $prog: " killproc -d 60 $prog RETVAL=$? echo [ $RETVAL = 0 ] && rm -f /var/lock/subsys/$prog ;; status) status $prog ;; restart) $0 stop $0 start ;; *) echo "Usage: $0 {start|stop|restart|status}" exit 1 esac exit 0 |
make /etc/init.d/rsyncd executable, and register this service
3 4 5 | chmod +x /etc/init.d/rsyncd /sbin/chkconfig --add rsyncd /sbin/service rsyncd start |
Setup rsync client
first, of course you must have rsync installed on client server
make rsync password file
1 2 3 4 5 | cd /etc mkdir rsync cd rsync touch rsync.pwd chmod 600 rsync.pwd |
vi /etc/rsync/rsync.pwd
1 | user_1_password |
execute this command to start synchronize file to server
1 | rsync -vrtLogp --progress /path/to/directory/to/be/backup/* my_rsync_user_1@[SERVER_IP]::profile_1 --password-file=/etc/rsync/rsync.pwd |
where [SERVER_IP] is rsync server IP






