实例分析这里假设有两台服务器:A和B。其中A是主web服务器,具有域名,B 服务器是备份机,其域名为backup.linuxdd.com.cn(10.1.1.121)。其中A的web内容存放在以下几个地方: /www/和 /home/web_user1/和/home/web_user2/。我们需要在备份机B上建立对这几个目录内容的备份。
服务器配置实例那么在上创建rsyncd的配置文件/etc/rsyncd.conf,内容如下:uid = nobodygid = nobodyuse chroot = nomax connections = 4pid file = /var/run/rsyncd.pidlock file = /var/run/rsync.locklog file = /var/log/rsyncd.log[www]path = /www/ignore errorsread only = truelist = falsehosts allow = 10.1.1.121hosts deny = 0.0.0.0/32auth users = backupsecrets file = /etc/backserver.pas[web_user1]path = /home/web_user1/ignore errorsread only = truelist = falsehosts allow = 10.1.1.121hosts deny = 0.0.0.0/32uid = web_user1gid = web_user1auth users = backupsecrets file = /etc/backserver.pas[web_user2]path = /home/web_user2/ignore errorsread only = truelist = falsehosts allow = 10.1.1.121hosts deny = 0.0.0.0/32uid = web_user2gid = web_user2auth users = backupsecrets 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里的v是verbose,z是压缩,r是recursive,topg都是保持文件原有属性如属主、时间的参数。-- 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
将以上命令加入计划任务可以实现每天自动备份