Linux下利用rsync实现多服务器文件同步

目标:多服务器文件同步
 
环境:2台CentOS5.6
 
Web端:192.168.20.20
 
Backup端:192.168.20.21
 
需要备份目录为:192.168.20.20:/usr/local/web1 /usr/local/web2
 
第一步:服务器端的配置
 
#rpm –qa |grep rsync && rpm –e rsync-** --dodeps
 
如果没有的话,则自行下载安装 (yum –y install rsync)
 
#cd /usr/local/
 
# wget
 
#tar –zxvf rsync-3.0.6pre1.tar.gz
 
#cd rsync-3.0.6pre1
 
#./configure –prefix=/usr/local/rsync
 
# make && make install
 
# vi /etc/rsyncd.conf
 
uid = nobody
 
gid = nobody
 
use chroot = no
 
max connections = 4
 
pid file = /usr/local/rsync/pid/rsyncd.pid
 
lock file = /usr/local/rsync/pid/rsync.lock
 
log file = /usr/local/rsync/pid/rsyncd.log
 
secrets file=/usr/local/rsync/pwd/rsyncd.pwd
 
hosts allow = 192.168.20.0/24
 
hosts deny = *
 
 
 
[web1]
 
path=/usr/local/web1
 
comment = backup web1
 
ignore errors
 
read only = yes
 
#list = no
 
auth users = web1
 
 
 
[web2]
 
path=/usr/local/web2
 
comment = backup web2
 
ignore errors
 
read only = yes
 
#list = no
 
auth users = web2
 
 
 
uid = nobody        //指定文件传输过程中的用户身份
 gid = nobody        //指定文件传输过程中的组身份
 
log file = /var/log/rsyncd.log        //指定使用独立的日志文件的位置
 pid file = /var/run/rsyncd.pid        //保存pid到指定文件,以便于使用脚本终止进程
 
read only = yes        //该目录设置为只读,即只允许客户端下行同步,不允许上传。若需要进行从备份机还原数据,改为no
 
rsyncd默认在873端口监听服务,可在客户端使用telnet连接测
 
密码文件为 /usr/local/rsync/pwd/rsyncd.pwd
 
 
 
# mkdir -p /usr/local/pid
 
# mkdir -p /usr/local/pwd
 
# vi /usr/local/rsync/pwd/rsyncd.pwd
 
web1:123456@789
 
web2:789@123456
 
格式为:用户名:密码
 
设置密码文件仅仅root用户能访问
 
#chmod 600 /usr/local/rsync/pwd/rsyncd.pwd
 
# cp /usr/local/rsync/bin/rsync  /usr/bin/
 
在服务器端启动rsync服务
 
# rsync –daemon (注意重启kill后要把.pid .lock删掉)
 
第二步:备份端的配置
 
安装rsync软件,同上
 
设置密码文件只需填写对应密码:
 
# touch /usr/local/rsync/web1
 
# touch /usr/local/rsync/web2
 
# vi /usr/local/rsync/web1
 
123456@789
 
# vi /usr/local/rsync/web2
 
789@123456
 
同时设置为只有root有权限
 
# chmod 600 /usr/local/rsync/wbe1
 
创建备份目录
 
# mkdir -p /usr/local/web1
 
# mkdir -p /usr/local/web2
 
# rsync –daemon
 
把服务器端文件web1备份到本机(备份机):
 
# /usr/bin/rsync -vzrtopg --progress --delete --exclude "logs/" --exclude "conf/ssl.*/" --password-file=/usr/local/rsync/web1 web1@192.168.20.20::web1 /usr/local/web1
 
# Web2 也是一样的如上手动进行同步
 
--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致, 删除本地目录中多余的文件
 
-- exclude "logs/" 表示不对/web1/logs目录下的文件进行备份。
 
--exclude "conf/ssl.*/"表示不对/web1/conf/ssl.*/目录下的文件进行备份。
 
 
 
如果需要可以放到crontab 计划任务中间隔性的进行同步备份!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/3606843aa234bbbf210cf6426a06a396.html