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

发布于:2021-12-02 11:32:07

目标:多服务器文件同步


环境:2台centos5.5


web:10.80.11.243


backup:10.80.11.244


??


第一部分:简单的数据备份


??


第一步:服务器端的配置


#rpm ?qa |grep rsync


如果没有的话,则自行下载安装


#cd ?/usr/local/src


# wget http://www.samba.org/ftp/rsync/src-previews/rsync-3.0.6pre1.tar.gz


#tar ?zxvf rsync-3.0.6pre1.tar.gz


#cd rsync-3.0.6pre1


#./configure && make && make install


假设web服务器有三个目录需要备份


/www


/home/web_user1/


/home/web_user2/


创建rsync的配置文件


#vim /etc/rsyncd.conf






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



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.80.11.244


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.80.11.244


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.80.11.244


hosts deny = 0.0.0.0
/32


uid = web_user2


gid = web_user2


auth?
users?
= backup


secrets?
file?
=?
/etc/backserver
.pas




备注:


uid = nobody ? ? ? ?//指定文件传输过程中的用户身份


gid = nobody ? ? ? ?//指定文件传输过程中的组身份


log file = /var/log/rsyncd.log ? ? ? ?//指定使用独立的日志文件的位置


pid file = /var/run/rsyncd.pid ? ? ? ?//保存pid到指定文件,以便于使用脚本终止进程


read only = yes ? ? ? ?//该目录设置为只读,即只允许客户端下行同步,不允许上传。若需要进行从备份机还原数据,改为no


rsyncd默认在873端口监听服务,可在客户端使用telnet连接测


密码文件为/etc/backserver.pas


#vim /etc/backserver.pas






1



backup:123456




格式为:用户名:密码


设置密码文件仅仅root用户能访问


#chmod 600 /etc/backserver.pas


然后建立备份用户


#useradd backup


#passwd backup


在服务器端启动rsync服务


# nohup rsync --daemon &


?


第二步:备份端的配置


安装rsync软件,同上


设置密码文件


#vim /etc/rsync.pas






1



123456




在客户端不需要加用户名,只需要加密码,同时设置为只有root有权限


#chmod 600 /etc/rsync.pass


创建备份目录


#mkdir-p /backup/www


#mkdir -p /backup/web_user1


#mkdir -p /backup/web_user2


把服务器端文件www模块备份到本机






1



#/usr/bin/rsync -vzrtopg --delete --exclude "logs/" --exclude "conf/ssl.*/" --progress backup@10.80.11.243::www /backup/www/ --password-file=/etc/rsync.pass




--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致, 删除本地目录中多余的文件


-- exclude "logs/" 表示不对/www/logs目录下的文件进行备份。


--exclude "conf/ssl.*/"表示不对/www/conf/ssl.*/目录下的文件进行备份。


对其他的模块的备份如下:






1



#/usr/bin/rsync -vzrtopg --delete --exclude "logs/" --exclude "conf/ssl.*/" --progress backup@10.80.11.243::web_user1 /backup/web_user1/ --password-file=/etc/rsync.pass








1



#/usr/bin/rsync -vzrtopg --delete --exclude "logs/" --exclude "conf/ssl.*/" --progress backup@10.80.11.243:: web_user2 /backup/web_user2/ --password-file=/etc/rsync.pass




如果提示以下错误







1


2



@ERROR: invalid uid web_user2


rsync?
error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6pre1]




则需要修改web服务器上的web_user2的uid和gid注释掉


定时备份的话,在crontab ?e里面设置


附:备份脚本,可以加入crontab,按时自动备份(backup服务器上运行)







1


2


3


4



#!/bin/bash


DATE=`
date??
+%w`


rsync?
-tvzrp -e?
ssh?
--progress --delete backup@10.80.11.244::www?
/backup/www/
$DATE?? --password-
file
=
/etc/rsync
.pass >?
/var/log/test
.$DATE


mail -s?
"Backup is done"?happy.yin
@qq.com
/var/log/test
.$DATE

相关推荐

最新更新

猜你喜欢