#******************说明,rsync可以借助ssh同步,也可以通过自己的rsync daemon服务同步,借助ssh同步如下*************#:
>>通过ssh协议
sshpass-premote_passwordrsync-avz--delete-esshremote_user@remote_host:/remote/dir/local/dir
上面的命令中:
remote_use/remote_password是远程的密码
-avz是打包传送、显示明细、压缩
-e ssh是关键,即over ssh
我们要从远程同步到本地
/remote/dir是远程服务器路径
/local/dir是本地服务器路径
##***************通过自带的rsync daemon服务同步如下*********************#:
>>、主应用服务器地址:192.168.0.1
1、说明
所有的应用都先更新到这一台服务器包括,然后通过
配置rsync服务器端在此主应用服务器上面,其他应用服务器通过执行定时脚本把文件拉到
各自的服务器上面。
2、创建密码文件/etc/pass.pass
chmod 600 /etc/pass.pass chown root.root /etc/pass.pass 写入如下内容: user_sync:user_sync_pwd3、创建 /etc/rsyncd.conf
chmod 600 /etc/rsyncd.conf chown root.root /etc/rsyncd.conf 写入如下内容: [root@Game-App1 www]# cat /etc/rsyncd.conf uid=root gid=root max connections=8 use chroot=no port = 8731 log file=/var/log/rsyncd.log pid file=/var/run/rsyncd.pid lock file=/var/run/rsyncd.lock [data1] path=/var/www/data1 comment = sync data1 ignore errors = yes read only = no auth users = ursync secrets file = /etc/pass.pass [data2] path=/var/www/html/data2 comment = sync html data2 ignore errors = yes read only = no auth users = ursync secrets file = /etc/pass.pass [tomcat] path=/usr/local/tomcat comment = sync tomcat ignore errors = yes read only = no auth users = ursync secrets file = /etc/pass.pass
4、启动 rsync 守护进程
rsync --daemon
5、开通8731端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8731 -j ACCEPT
6、rsync 不用手动输入密码的方式拉取文件:
a、先执行:
export RSYNC_PASSWORD=xxxxb、再执行:
rsync -vza --port 11873 --progress --checksum --delete root@192.168.0.211::datadir/test/ /var/www/test注意事项:
静态文件,通过同步是没有问题的,对于tomcat,class文件,以及python
文件需要 手动启动tomcat和apache的,否则不会重新加载
>>客户端服务器 192.168.0.2,192.168.0.3
1、创建 /etc/pass.pass
chmod 600 /etc/pass.pass
chown apache.apache /etc/pass.pass
写入如下代码:
user_sync_pwd
2、rsync.py脚本
vim /home/pwp/rsync.py
# -*- coding: utf-8 -*- import os import sys import datetime import shutil import traceback RSYNC_DATA1=u"""rsync -vza --delete --port 8731 --progress --checksum --exclude "dd/user.config" ursync@192.168.0.1::data1 /var/www/data1--password-file=/etc/pass.pass""" RSYNC_HTML_DATA2=u"""rsync -vza --delete --port 8731 --progress --checksum ursync@192.168.0.1::data2 /var/www/html/data2 --password-file=/etc/pass.pass""" RSYNC_TOMCAT = u"""rsync -vza --delete --port 8731 --progress --checksum --exclude "webapps/iptv_HD/WEB-INF/classes/config.properties" --exclude "logs" ursync@192.168.0.1::tomcat /usr/local/tomcat --password-file=/etc/pass.pass""" def exec_rsync(): try: os.system(RSYNC_DATA1) os.system(RSYNC_DATA2) os.system(RSYNC_TOMCAT) except: traceback.print_exc() if __name__ == "__main__": exec_rsync()
3、配置 crontab 定时脚本
chmod 755 /home/pwp/rsync.py crontab -e */1 * * * * python /home/pwp/rsync.py
3758

被折叠的 条评论
为什么被折叠?



