Rsync的用途和部署目的
网站各个模块的发布中,不管是静态处理(Nginx)还是动态处理的服务器(Tomcat),版本和版本路径都是一样的(/data/www/ROOT)。为了使得各种负载均衡的单元以及各个service或app模块的服务器的版本保持同步,Rsync定时将批量服务器版本同步。从而提升发布效率,避免版本不同步的错误发生。同时也起到版本交叉备份的作用。
4、Rsyncd(服务端&发布端)的部署
注:以下操作全部以root账号运行。
4.1、Rsyncd的安装
wget http://phzcudns001.phzc.com/src/rsync-3.1.1.tar.gz
tar zxvf rsync-3.1.1.tar.gz && cd rsync-3.1.1
./configure -prefix=/usr/local/rsync
make && make install
4.2、Rsyncd的配置文件
创建一个配置文件(默认无):
vi /etc/rsyncd.conf
内容如下:
uid = root
gid = root
use chroot = no
max connections = 100
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /data/logs/rsync/rsyncd.log
address = 内网地址
port = 873
[www]
path = /data/www/
ignore errors
read only = true
list = false
hosts allow = 10.10.0.0/16
auth users = root
secrets file = /etc/rsync.pas
(这里推荐2个配置文件的参数,叫include和exclude,分别可以指派要同步的文件和目录,以及不需同步的文件和目录,比如logs目录,*.log文件等)
4.3、Rsyncd的密码文件
配置密码文件(/etc/rsync.pas)也是需要手动创建
vi /etc/rsync.pas 内容如下:
root:123456789
需要将该文件的权限修改为600,属主和属组都是root
chown root:root /etc/rsync.pas
chmod 600 /etc/rsync.pas
4.3、创建rsyncd的日志文件,并用logrotate每日截断
mkdir -p /data/logs/rsync
vi /etc/logrotate.d/rsync 加入以下脚本:
/data/logs/rsync/rsyncd.log {
daily
rotate 365
missingok
sharedscripts
postrotate
if [ -f /var/run/rsyncd.pid ]; then
kill -USR1 `cat /var/run/rsyncd.pid`
fi
endscript
}
4.4、启动rsync服务并将其设置为开机启动
/usr/local/rsync/bin/rsync --daemon
echo "/usr/local/rsync/bin/rsync --daemon" >> /etc/rc.local
(可以通过vi /etc/rc.local查看是否有追进进去)
5、Rsync(客户端的同步)的部署
5.1、添加密码配置文件
在从服务器上(rsync客户端)用命令去同步文件即可。
首先生成一个密码配置文件,需要和源数据服务器(主服务器)上面的密码保持一致。
vim /etc/rsyncd.secrets(文件不存在,vi手动生成)
只需要填写密码即可(例如上面的123456789)
该文件的权限也需要保持为600
chmod 600 /etc/rsyncd.secrets
5.2、加入每日计划任务
使用crontab来实现定时更新
crontab –e 加入以下:
0 2 * * * rsync -auzvP --progress --password-file=/etc/rsyncd.secrets root@内网地址::www /data/www/
这样就把远程服务器下的/data/www/(在源数据服务器的/etc/rsyncd.conf里面配置的)的数据同步到了远程服务器下的/data/www/了。
注意:如果要实现真实同步,可以加--delete,但是这样会引起本地确实需要的文件在执行同步之后没有了,所以建议一般情况不加delete参数,实现增量同步。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/637517/viewspace-1766813/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/637517/viewspace-1766813/