rsync同步的使用

#******************说明,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_pwd
 

3、创建 /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=xxxx

        b、再执行:
            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

 

    
    

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值