sersync+rsync文件同步
一、目标服务器配置
1.1查看是否安装rsync
rsync --version|head -2
[安装 yum -y install rsync]
1.2配置同步
vim /etc/rsyncd.conf
uid = root gid = root use chroot = no# 安全相关 max connections = 2000# 并发连接数 timeout = 600# 超时时间( 秒) pid file = /var/run / rsyncd.pid# 指定rsync的pid目录 lock file = /var/run / rsync.lock# 指定rsync的锁文件【 重要】 log file = /var/log / rsyncd.log# 指定rsync的日志目录 ignore errors read only = false list = false hosts deny = 0.0 .0 .0 / 32 auth users = rsync_user secrets file = /etc/rsync.password[www]# 模块可以多个 comment = www path = /data/www /1.3新增账号密码
echo "rsync_user:rsync_pwd">/etc/rsync.password chmod 600 /etc/rsync.password1.4启动守护进程,并写入开机自启动
rsync --daemon netstat -nulpt| grep rsync vim /etc/rc.local /usr/bin/rsync --daemon
1.5创建相关待同步的目录 多个目录可以这样写:mkdir -p /data/{www,bbs}
新建目录的时候记得给rsync_user用户访问这个备份目录的权限
mkdir -p /data/www yum -y install tree tree /data #树形显示预览
二、配置主机
2.1查看是否安装rsync
rsync --version|head -2
[安装 yum -y install rsync]
2.2密码写入到本地文件
echo "rsync_pwd">/etc/rsync.password
chmod 600 /etc/rsync.password
2.3创建同步目录
mkdir -p /data/www
touch /data/www/www.log /data/www/www1.log
2.4手动测试rsync通过,记得打开端口873
rsync -avzP /data/www/ rsync_user@118.24.26.209::www/ --password-file=/etc/rsync.password
2.5 下载sersync,拖拽到/home目录下,并解压
yum -y install lrzsz
#下载地址:https://code.google.com/archive/p/sersync/downloads
cd /home
tar fxz sersync2.5.4_64bit_binary_stable_final.tar.gz -C /usr/local/
cd /usr/local/
mv GNU-Linux-x86 sersync
tree sersync/
2.6修改配置
2.6.1备份一下配置文件
cp sersync/confxml.xml sersync/confxml.xml.$(date +%F)
2.6.2 设置同步目录,和需要同步的ip,可以多个 修改24--28行
<localpath watch="/data/www"> <remote ip="118.24.26.209" name="www" /> <!--<remote ip="192.168.8.39" name="tongbu"/>--> <!--<remote ip="192.168.8.40" name="tongbu"/>--> </localpath>2.6.3 修改31--34行,认证部分【rsync密码文件】
<rsync> <commonParamsparams="-artuz" /> <auth start="true" users="rsync_user" passwordfile="/etc/rsync.password" /> <userDefinedPortstart="false" port="874" /><!-- port=874 --> <timeout start="true" time="100" /> <!--timeout=100 --> <sshstart="false" /> </rsync>2.6.4 设置错误日志路径
<failLog path="/usr/local/sersync/logs/rsync_fail_log.sh" timeToExecute="60"/>
<!--default every 60mins execute once-->
# 当同步失败后,日志记录到/usr/local/sersync/logs/rsync_fail_log.sh文件中,并且每60分钟对失败的log进行重新同步
2.6.5 开启sersync守护进程同步数据
/usr/local/sersync/sersync2 -d -r -o /usr/local/sersync/confxml.xml echo "PATH=$PATH:/usr/local/sersync/">>/etc/profile source /etc/profile sersync2
三补充: 多实例情况
配置多个confxml.xml文件(比如:www、bbs、blog....等等)
3.1、根据不同的需求同步对应的实例文件
/usr/local/sersync/sersync2 -d -o /usr/local/sersync/www_confxml.xml
/usr/local/sersync/sersync2 -d -o /usr/local/sersync/bbs_confxml.xml
/usr/local/sersync/sersync2 -d -o /usr/local/sersync/blog_confxml.xml
3.2 多实例初始化同步命令:
/usr/local/sersync/sersync2 -r-d -o /usr/local/sersync/www_confxml.xml
/usr/local/sersync/sersync2 -r-d -o /usr/local/sersync/bbs_confxml.xml
/usr/local/sersync/sersync2 -r-d -o /usr/local/sersync/blog_confxml.xml
/bin/cp /etc/rc.local/etc/rc.local_$(data +%F)
cat>>/etc/rc.local<<EOF
/usr/local/sersync/sersync2 -d -o /usr/local/sersync/www_confxml.xml
/usr/local/sersync/sersync2 -d -o /usr/local/sersync/bbs_confxml.xml
/usr/local/sersync/sersync2 -d -o /usr/local/sersync/blog_confxml.xml
EOF
四压测:写入10K个文件批量同步测试结果:
for n in `seq 10000`;do echo dddd>/data/www/$n.txt;done ps -ef |grep rsync