实例分析
这里假设有两台服务器:AB。其中A是主web服务器,具有域名www.linuxdd.com(10.1.1.120)服务器是备份机,其域名为backup.linuxdd.com.cn(10.1.1.121)。其中Aweb内容存放在以下几个地方: /www/和 /home/web_user1//home/web_user2/。我们需要在备份机B上建立对这几个目录内容的备份。

服务器配置实例

那么在www.linuxdd.com.cn上创建rsyncd的配置文件/etc/rsyncd.conf,内容如下:
uid = nobody
gid = nobody
use chroot = no
max connections = 4
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log

[www]
path = /www/
ignore errors
read only = true
list = false
hosts allow = 10.1.1.121
hosts deny = 0.0.0.0/32
auth users = backup
secrets file = /etc/backserver.pas

[web_user1]
path = /home/web_user1/
ignore errors
read only = true
list = false
hosts allow = 10.1.1.121
hosts deny = 0.0.0.0/32
uid = web_user1
gid = web_user1
auth users = backup
secrets file = /etc/backserver.pas

[web_user2]
path = /home/web_user2/
ignore errors
read only = true
list = false
hosts allow = 10.1.1.121
hosts deny = 0.0.0.0/32
uid = web_user2
gid = web_user2
auth users = backup
secrets file = /etc/backserver.pas

这里定义有三个模块,分别对应于三个需要备份的目录树。这里只允许10.1.1.121备份本机的数据,并且需要认证。三个模块授权的备份用户都为backup,并且用户信息保存在文件/etc/backserver.pas中,其内容如下:
backup:bk_passwd

并且该文件只能是root用户可读写的,否则rsyncd启动时会出错。这些文件配置完毕以后,就需要在A服务器上启动rsyncd服务器:

rsync --daemon

客户命令示例
/usr/local/bin/rsync -vzrtopg --delete --exclude "logs/" --exclude "conf/ssl.*/" --progress backup@10.1.1.120::www /backup/www/ --password-file=/etc/rsync.pass

*-vzrtopg里的vverbosez是压缩,rrecursivetopg都是保持文件原有属性如属主、时间的参数。-- progress是指显示出详细的进度情况,--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。-- exclude "logs/" 表示不对/www/logs目录下的文件进行备份。--exclude "conf/ssl.*/"表示不对/www/conf/ssl.*/目录下的文件进行备份。

backup@10.1.1.120::www 表示对该命令是对服务器10.1.1.120中的www模块进行备份,backup表示使用backup来对该模块进行备份。
--password-file=/etc/rsync.pass来指定密码文件了,需要注意的是这份密码文件权限属性要设得只有root可读。

/usr/local/bin/rsync -vzrtopg --delete --progress backup@10.1.1.120::web_user1 /backup/web_user1/ --password-file=/etc/rsync.pass

/usr/local/bin/rsync -vzrtopg --delete --progress backup@10.1.1.120::web_user2 /backup/web_user2/ --password-file=/etc/rsync.pass

 将以上命令加入计划任务可以实现每天自动备份