linux 如何rsync实现增量同步文件到多台机器?

背景:

我需要经常把160机器上的文件,同步到171,111,105等…
为什么选择rsync?它可以实现增量同步。这也是没选scp的原因! 
所以,我选择rsync来实现

解决方案步骤如下:

1.安装

sudo apt-get install rsync    # Debian
sudo yum install rsync    # Red Hat
sudo pacman -S rsync    # Arch Linux

2.建立ssd免密登录,给需要建立免密的都执行一遍

# 查看秘钥
cd ~/.ssh ; ls
# 没有就生成
ssh-keygen
# 有的话就直接上传秘钥
ssh-copy-id -i ~/.ssh/id_rsa.pub liqi@192.168.49.171  # liqi是我的用户名,根据需要自己改

3.执行命令,测试能否把mmmm同步到远程171

rsync -avz mmmm liqi@192.168.49.171:/home/lynxi/

在这里插入图片描述

4.另一台机器上查看,已经拷贝过去了。

ls | grep mmmm

5.可以写个脚本,每次运行都把mmmm同步到其他服务器上。

vim sync.sh
#!/bin/bash
echo "开始同步49.171"
rsync -avz mmmm liqi@192.168.49.171:/home/liqi/
echo
echo "开始同步49.105"
rsync -avz mmmm liqi@192.168.49.105:/home/liqi/
echo
echo "开始同步49.107"
rsync -avz mmmm liqi@192.168.49.107:/home/liqi/
echo
echo "开始同步49.111"
rsync -avz mmmm liqi@192.168.49.111:/home/liqi/
echo
echo "同步结束"

优点:每次需要同步的时候,就执行一下,可以增量同步。

缺点:主机删除的文件,不能同步删除到其他文件。(需要手动删除)


2023年4月19日 更新。这个是可以删除的。增加–delete的参数。

也就是说,没有缺点!!!

--delete 删除那些目标目录中有而源目录中没有的多余文件。这个是rsync做增量方式的全备份的最佳选择方案!!!!!!
--delete-before 接受者在输出之前进行删除操作。即先将目标目录中文件全部删除,再将源目录文件拷贝过去。这是rsync保持目标目录跟源目录一致的方案!!!
--delete-after 在同步操作之后做比较,删除那些目标目录中有而源目录中没有的多余文件
--delete-excluded 删除目标目录中那些被该选项指定排除的文件

同步效果如下:

在这里插入图片描述

扩展:

rsync 参数解释:
-a : 归档模式, 归档模式总是递归拷贝,而且保留符号链接、权限、属主、属组时间戳
-v : 详细模式输出
-z : 压缩传输
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值