两台centos之间使用rsync做文件定时同步

rsync(remote synchronize )是一个远程文件同步工具,支持多个操作系统,用于在多台服务器之间同步目录和文件。rsync采用增量传输文件的方法,只传输新文件和修改过的文件,而不是每次都全部传输,效率比较高。

准备两台或者多台服务器,确保机器之间网络通畅。

1、服务端(提供数据的一端) 192.168.100.1

先在服务器上创建两个需要同步的文件夹

#创建两个测试的文件夹
mkdir /root/test1 test2


#创建几个测试文件
echo "123123" > /root/test1/tt.txt
echo "123123" > /root/test1/tt1.txt

echo "123123" > /root/test2/tt2.txt
echo "123123" > /root/test2/tt3.txt
echo "123123" > /root/test2/tt4.txt
# yum安装rsync组件
yum install -y rsync

安装完成后会出现  /etc/rsyncd.conf  文件,这是配置同步目录的文件,先不着急管他,先创建一个密码文件

#创建密码文件,格式为  user:password,这里我使用的是root账号
echo "root:password" > /etc/rsyncd.secrets
#授权
chown root.root /etc/rsyncd.secrets
#一定要给这个文件600权限
chmod 600 /etc/rsyncd.secrets


#如果不是root用户,单独创建的用户需要把刚刚创建的测试文件夹授权给用户,格式为  用户组:用户名,有权限这行忽略
chown user_group:user /root/test1

开始编辑 /etc/rsyncd.conf 文件,配置同步目录等信息

# RSYNC Config
# 指定传输文件使用的用户
uid = root
# 指定传输文件使用的用户组
gid = root
# 安全设置,切换到安全目录
use chroot = no
# 最大连接数
max connections = 10
# 客户端超时时间,单位秒,设置为 0 不超时
timeout = 900
# PID 文件
pid file = /var/run/rsyncd.pid
# 锁文件
lock file = /var/run/rsync.lock
# 日志文件
log file = /var/log/rsyncd.log
# 日志记录方式
transfer logging = yes
# 忽略文件
exclude = lost+found/
# 忽略不可读文件
ignore nonreadable = yes
# 传输时不压缩的文件
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
# 现在的版本需要添加,保留文件的完整属性
fake super = yes

# 模块名,同步时候要指定的名称,可以配置多个,格式如下
[test1]
    # 对应的目录
    path = /root/test1
    # 传输的删除时忽略 I/O 错误,报错会跳过--delete
    ignore errors
    # 允许写入
    read only = false
    # 不允许列出
    list = false
    # 允许的网段,多个使用空格隔开
    hosts allow = 192.168.100.2
    # 拒绝的网段,拒绝所有
    hosts deny = 0.0.0.0/32
    # 连接的虚拟用户,非系统用户
    auth users = root
    # 虚拟用户的账号密码文件
    secrets file = /etc/rsyncd/rsyncd.secrets
    # 注释说明
    comment = this is test1 sync
[test2]
    # 对应的目录
    path = /root/test2
    # 传输的删除时忽略 I/O 错误,报错会跳过--delete
    ignore errors
    # 允许写入
    read only = false
    # 不允许列出
    list = false
    # 允许的网段,多个使用空格隔开
    hosts allow = 192.168.100.2
    # 拒绝的网段,拒绝所有
    hosts deny = 0.0.0.0/32
    # 连接的虚拟用户,非系统用户
    auth users = root
    # 虚拟用户的账号密码文件
    secrets file = /etc/rsyncd/rsyncd.secrets
    # 注释说明
    comment = this is test2 sync

保存完后,直接应用配置,启动rsync

#应用配置并启动
rsync --daemon

#检查端口,默认873
netstat -tlunp | grep 873

如果有防火墙,自己配置一下防火墙或者内网情况下可以直接关闭防火墙(自行百度)

 到这边,服务端的配置就结束了

2、客户端配置(从服务端同步文件进来的机器) 192.168.100.2

客户端就比较简单

#安装rsync
yum install -y rsync

#创建一个服务端服务器的密码文件,只要密码,不需要用户名
echo "password" > /etc/rsyncd.secrets
#一样需要600权限
chmod 600 /etc/rsyncd.secrets

配置好后应用一下,直接连接服务端查看文件夹

#test1就是服务端配置的,test1/test2  
rsync  --list-only  --password-file=/etc/rsyncd.secrets 192.168.100.1::test1

这样就说明正常了,现在只是能看到,我们同步过来看看

 

rsync  -avzP --delete  --password-file=/etc/rsyncd.secrets  192.168.100.1::test1 /root/test1

这个时候,无论服务端新增还是删除,只要通过这个命令都会同步过来

3、接下来使用crontab做个定时同步,间隔范围自己控制

#创建一个脚本
vi sync_file.sh

#脚本内容
rsync  -avzP --delete  --password-file=/etc/rsyncd.secrets  192.168.100.1::test1 /root/test1

#保存后给脚本文件授权
chmod 755 sync_file.sh



#配置crontab
crontab -e

#每天10:59分执行一次
59 10 * * * bash /root/sync_file.sh

 就酱。。。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值