返回果真SPESHOW博客列表

rsync

发布于 1年前
摘要
ubuntu14.04 数据同步

rsync是一个数据同步工具,很多地方经常会用到rsync工具,实现几台服务器的同步效果

环境:ubuntu14.04

server:192.168.5.141                

client:192.168.5.118                --  同步命令在哪里执行,他就是client

系统默认已经安装了rsync,我们只需更改server端配置,并将密码文件写入client端即可开始同步

目标:将192.168.5.141的/opt/daixiu目录下的所有文件同步至192.168.5.118的/root/rsynczl目录下

1.配置server,然后启动rsync

1)准备工作

要同步的文件

$ ls /opt/daixiu
dist  pom.xml  README.md  src    


2)拷贝配置文件(ubuntu首次配置需要,centos配置文件默认在/etc/rsync.conf无需拷贝)

$ sudo cp /usr/share/doc/rsync/examples/rsyncd.conf /etc    
$ sudo vim /etc/default/rsync               -- 这一步只针对ubuntu,centos无需配置
RSYNC_ENABLE=true           -- false改true


3) 修改配置文件

一键配置脚本(也可手动执行命令配置)

$ cat rsync.sh

#!/bin/bash
cat > /etc/rsyncd.conf << EOF
uid = 0
gid = 0
use chroot = no
max connections = 100
timeout = 600
pid file=/var/run/rsyucd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
[static]
path = /opt/daixiu             -- 自定义要同步的目录
ignore errors
read only = no
list = no
hosts allow = 192.168.5.0/255.255.255.0     -- 允许连接的IP地址
auth users = www1       -- 连接用户,注意不是系统用户,rsync定义的用户,在secrets file中配置
secrets file = /etc/www1.pwd                -- 连接用户密码配置文件
EOF
echo "www1:123" > /etc/www1.pwd            -- 用户:www1,密码:123
chmod 600 /etc/www1.pwd
/usr/bin/rsync --daemon                     -- 启动 rsync
echo "/usr/bin/rsync --daemon" >> /etc/rc.local    -- 开机启动


4)启动服务

$ sudo bash rsync.sh
$ sduo ss -tunlp|grep 873    -- rsync默认监听873端口


5)设置防火墙

$ sudo iptables -I INPUT -p udp --dport 873 ACCPET
$ sudo iptables -I INPUT -p tcp --dport 873 ACCPET


2. 配置client

1)创建密码文件

$ sduo echo "123" >> /etc/www1.pwd


2)同步

$ sudo crontab -e
0 02 * * * rsync -avzP www1@192.168.5.141::static /root/rsynczl/ --password-file=/etc/www1.pwd          -- 增量同步,不删除目标目录已有文件
0 5 * * * rsync -avzP --delete www1@192.168.5.141::static /root/rsynczl/ --password-file=/etc/www1.pwd  -- 同步时,删除源目录中没有的文件,注意:两个目录结构要一致,否则不会删除目标目录多余的文件(如将文件同步至一个目录的情况,目标目录原来的文件不变)


3)查看同步结果

$ ubuntu@node1:~/rsynczl$ pwd
/root/rsynczl
$ ubuntu@node1:~/rsynczl$ ls
dist  pom.xml  README.md  src     -- 和192.168.5.141中的/opt/daixiu目录下文件一致,同步成功


实例

rsync 文件1 目录2     文件1同步至目录2下,不改变目标2原文件
rsync 目录1/* 目录2   目录1下所有文件同步至目录2,不改变目录2原文件
rsync 目录1 目录2     目录1同步至目录2下,不改变目录2原文件
rsync 目录1/ 目录2    目录1下所有文件同步至目录2,覆盖目录2原文件


 
相关信息
     标签
       附件
      文件 标题 创建者

      评分 0次评分

      日程