首先处理同步失败的文件,将这些文件再次同步,对于再次同步失败的文件会生成rsync_fail_log.sh脚本,进
行记录
Sersync的应用:
无论编辑通过 Web 还是 FTP 上传图片、视频、附件,还是直接去发布服务器上增加、修改、删除文件,干完这些事情后不用做任何处理,sersync 会自动将发生增、删、改事件的文件同步到远程服务器,并可以在文件同步完成后,自动调用 CDN(ChinaCache)缓存刷新接口,刷新发生修改、删除的文件的访问 URL。
1.查看rsync的版本信息 (centos默认已经安装)
[root@Rsync_2 ~]# rsync --version|head -2 rsync version 3.0.6 protocol version 30 Copyright (C) 1996-2009 by Andrew Tridgell, Wayne Davison, and others.
2.查看操作系统内核版本
[root@Rsync_2 ~]# cat /etc/redhat-release CentOS release 5.10 (Final) [root@Rsync_2 ~]# uname -r 2.6.18-371.el5 [root@Rsync_2 ~]# uname -mi i686 i386
注意:centos默认已经安装此服务
[root@Rsync_2 ~]# which rsync /usr/bin/rsync
同时在Rsync_1和Rsync_2上面同时增加如下配置文件:
[root@Rsync_2 ~]# vim /etc/rsyncd.conf uid = root #指定用户的uid gid = root #指定用户的gid use chroot = no #指定是否能够使用chroot改变程序执行时所参考的根目录位置 max connections = 2000 #最大连接数 timeout = 600 #超时时间 pid file = /var/run/rsyncd.pid #pid文件 lock file = /var/run/rsync.lock #指定lock存放文件 log file = /var/log/rsyncd.log # 指定日志存放的文件 ignore errors #忽略错误 read only = false #如果设置的false,是允许上传文件的 list = false # hosts allow = 192.168.1.0/24 #允许访问的iP段 hosts deny = 0.0.0.0/32 #拒绝的访问的ip段 auth users = rsync_back #认证的用户 secrets file = /etc/rsync.password #指定rsync用户的密码文件 ##################################### [www] # 模块 comment = www # 对于模块的描述 path = /data/www/www/ # 指定模块的路径 ##################################### [bbs] comment = bbs path = /data/www/bbs/ ##################################### [blog] comment = blog path = /data/www/blog/
[root@Rsync_2 ~]# vim /etc/rsync.password rsync_backup:654321 [root@Rsync_2 ~]# chmod 600 /etc/rsync.password [root@Rsync_2 ~]# ll /etc/rsync.password -rw------- 1 root root 20 Jan 2 00:01 /etc/rsync.password [root@Sersync www]# echo "654321" >>/etc/rsync.password [root@Sersync www]# cat /etc/rsync.password 654321 [root@Sersync www]# chmod 600 /etc/rsync.password [root@Sersync www]# ll /etc/rsync.password -rw------- 1 root root 7 01-09 02:31 /etc/rsync.password
6.Rsync服务的启动与停止,已经启动状况查看
[root@Rsync_2 ~]# rsync --daemon # rsync 服务启动 [root@Rsync_2 ~]# ps -ef|grep -v grep |grep rsync # 查看启动服务的进程 root 4514 1 0 00:03 ? 00:00:00 rsync --daemon [root@Rsync_2 ~]# netstat -ltn|grep 873 #查看启动服务的端口 tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN [root@Rsync_2 ~]# lsof -i tcp:873 #根据启动服务的端口,查看进程 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME rsync 4514 root 3u IPv4 12189 0t0 TCP *:rsync (LISTEN) [root@Rsync_2 ~]# pkill rsync #rysnc服务的停止 [root@Rsync_2 ~]# ps -ef|grep -v grep |grep rsync [root@Rsync_2 ~]# netstat -ltn|grep 873 [root@Rsync_2 ~]# lsof -i tcp:873
在三台服务器/data/www/上创建三个目录:www bbs blog 用于数据同步的目录
[root@Sersync sersync]# mkdir -p /data/www/www [root@Sersync sersync]# cd /data/www/ [root@Sersync www]# mkdir bbs blog [root@Sersync www]# tree [root@ Rsync_2 ~]# mkdir -p /data/www [root@ Rsync_2 ~]#cd /data/www [root@ Rsync_2 www]# mkdir www bbs blog [root@ Rsync_2 www]# tree [root@ Rsync_1 ~]# mkdir -p /data/www [root@ Rsync_1 ~]#cd /data/www [root@ Rsync_1 www]# mkdir www bbs blog [root@ Rsync_1 www]# tree [root@Sersync www]# pwd /data/www/www [root@Sersync www]# touch abc # 创建需要同步的文件
[root@Sersync www]# rsync -avzP /data/www/www/ [email protected]::www/ --password-file=/etc/rsync.password sending incremental file list ./ abc 0 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/2) sent 73 bytes received 30 bytes 8.96 bytes/sec total size is 0 speedup is 0.00
命令解释:将本地的/data/www/www用户目录下面的文件,推送到192.168.1.2的www模块指定的用户目录下面(www模块指定的路径是/data/www/www/),
详细的用法:man rsync
[root@Sersync www]# rsync -avzP /data/www/www/ [email protected]::www/ --password-file=/etc/rsync.password sending incremental file list ./ abc 0 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/2) sent 73 bytes received 30 bytes 9.81 bytes/sec total size is 0 speedup is 0.00
在Rsync_1和Rsync_2目录上面查看同步的文件
[root@Rsync_1 www]# tree . |-- bbs |-- blog `-- www `-- abc
[root@Rsync_2 www]# tree . |-- bbs |-- blog `-- www `-- abc
同事出现abc文件说明同步成功
8.Sersync服务安装与部署
[root@Sersync ~]# mkdir -p /home/es/tools [root@Sersync ~]# cd /home/es/tools/ [root@Sersync tools]# wget http://sersync.googlecode.com/files/sersync2.5_32bit_binary_stable_final.tar.gz [root@Sersync tools]# tar -zxvf sersync2.5_32bit_binary_stable_final.tar.gz -C /usr/local/ GNU-Linux-x86/ GNU-Linux-x86/sersync2 GNU-Linux-x86/confxml.xml
9.规范化sersync文件的目录,便于管理
[root@Sersync tools]# cd /usr/local/ [root@Sersync local]# [root@Sersync local]# mv GNU-Linux-x86 sersync [root@Sersync local]# cd sersync/ [root@Sersync sersync]# ll 总计 1496 -rwxr-xr-x 1 root root 2214 2010-07-04 confxml.xml -rwxr-xr-x 1 root root 1520176 2010-07-04 sersync2 [root@Sersync sersync]# mkdir conf bin logs
logs : 用户存放日志文件
[root@Sersync sersync]# mv confxml.xml conf [root@Sersync sersync]# mv sersync2 bin/sersync [root@Sersync sersync]# tree . |-- bin | `-- sersync |-- conf | `-- confxml.xml `-- logs 3 directories, 2 files
[root@Sersync sersync]# cp -a conf/confxml.xml conf/confxml.xml.back [root@Sersync sersync]#vim conf/confxml.xml
</sersync>
10.配置sersync的环境变量
[root@Sersync www]# echo $PATH /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin [root@Sersync www]# echo 'export PATH=$PATH:/usr/local/sersync/bin'>>/etc/profile [root@Sersync www]# source /etc/profile [root@Sersync www]# which sersync /usr/local/sersync/bin/sersync
11.启动sersync服务
[root@Sersync www]# sersync -r -d -o /usr/local/sersync/conf/confxml.xml set the system param execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events parse the command param option: -r rsync all the local files to the remote servers before the sersync work option: -d run as a daemon option: -o config xml name: /usr/local/sersync/conf/confxml.xml daemon thread num: 10 parse xml config file host ip : localhost host port: 8008 daemon start,sersync run behind the console use rsync password-file : user is rsync_back passwordfile is /etc/rsync.password config xml parse success please set /etc/rsyncd.conf max connections=0 Manually sersync working thread 12 = 1(primary thread) + 1(fail retry thread) + 10(daemon sub threads) Max threads numbers is: 22 = 12(Thread pool nums) + 10(Sub threads) please according your cpu ,use -n param to adjust the cpu rate ------------------------------------------ rsync the directory recursivly to the remote servers once working please wait... execute command: cd /data/www/www && rsync -artuz -R --delete ./ --timeout=100 [email protected]::www --password-file=/etc/rsync.password >/dev/null 2>&1 [root@Sersync www]# run the sersync: watch path is: /data/www/www [root@Sersync www]# ps -ef|grep -v grep |grep sersync root 6524 1 0 03:33 ? 00:00:01 sersync -r -d -o /usr/local/sersync/conf/confxml.xml
12.文件同步测试
在Sersync服务器上创建文件,看在rsync服务器下面的同步目录能不能相同
[root@Sersync www]# pwd /data/www/www [root@Sersync www]# touch www.log [root@Sersync www]# ll 总计 0 -rw-r--r-- 1 root root 0 01-09 03:34 www.log [root@Rsync_1 www]# ll 总计 0 -rw-r--r-- 1 root root 0 01-09 03:34 www.log [root@Rsync_2 www]# ll total 0 -rw-r--r-- 1 root root 0 Jan 9 2014 www.log
参考文档
本文出自 “让梦飞翔” 博客,谢绝转载!