rsync同步操作

• 命令用法
– rsync [选项...] 源目录 目标目录
• 同步与复制的差异
– 复制:完全拷贝源到目标
– 同步:增量拷贝,只传输变化过的数据
• rsync操作选项
  – -n:测试同步过程,不做实际修改
  – --delete:删除目标文件夹内多余的文档
  – -a:归档模式,相当于-rlptgoD
  – -v:显示详细操作信息
  – -z:传输过程中启用压缩/解压

本地同步

– rsync [选项...] 本地目录1     本地目录2
– rsync [选项...] 本地目录1/    本地目录2
]# mkdir /todir
]# rsync -a  /boot   /todir/     #同步整个文件夹
]# rsync -a  /boot/  /todir/     #只同步目录下的数据
[root@svr7 ~]# mkdir   /nsd   /test
[root@svr7 ~]# cp  /etc/passwd   /nsd
[root@svr7 ~]# touch  /nsd/1.txt
[root@svr7 ~]# mkdir  /nsd/public
[root@svr7 ~]# ls  /nsd/
[root@svr7 ~]# rsync -avz /nsd  /test/  #同步目录本身
[root@svr7 ~]# ls  /test
[root@svr7 ~]# ls  /test/nsd
[root@svr7 ~]# rm -rf /test/*
[root@svr7 ~]# rsync -avz  /nsd/  /test/  #同步目录内容
[root@svr7 ~]# touch  /nsd/{3..10}.txt
[root@svr7 ~]# ls  /nsd/
[root@svr7 ~]# rsync -avz /nsd/  /test/
[root@svr7 ~]# ls  /test

删除目标目录多余的文档

[root@svr7 ~]# rm -rf /nsd/*.txt
[root@svr7 ~]# ls /nsd
[root@svr7 ~]# ls /test
[root@svr7 ~]# rsync -avz --delete /nsd/ /test/
[root@svr7 ~]# ls /nsd
[root@svr7 ~]# ls /test
rsync+SSH同步
• 与远程的 SSH目录保持同步
– 下行:rsync [...]  user@host:远程目录   本地目录
– 上行:rsync [...]  本地目录   user@host:远程目录
虚拟机A:
[root@svr7 /]# ls /opt
[root@svr7 /]# rsync -avz --delete /opt/  root@192.168.4.207:/opt/
虚拟机B:
[root@pc207 /]# ls /opt
虚拟机A:
[root@svr7 /]# touch /opt/haxi.txt
[root@svr7 /]# rsync -avz --delete /opt/  root@192.168.4.207:/opt/
虚拟机B:
[root@pc207 /]# ls /opt
实时同步
虚拟机A:

一 生成公钥与私钥 实现ssh无密码验证

[root@svr7 /]# ssh-keygen      #一路回车 
[root@svr7 /]# ls /root/.ssh/
id_rsa(私钥)   id_rsa.pub(公钥)
2.复制公钥到对方
[root@svr7 /]# ssh-copy-id root@192.168.4.207
# rsync -avz --delete /opt/  root@192.168.4.207:/opt/
虚拟机B:
[root@pc207 ~]# ls /root/.ssh/
authorized_keys

二 安装inotify-tools实现监控目录内容变化

步骤一:安装开发工具gcc  make
步骤二:tar解包
]# tar -xf  /tools/inotify-tools-3.13.tar.gz -C /test
]# ls  /test/inotify-tools-3.13/
步骤三: ./configure 配置
]# cd  /test/inotify-tools-3.13/
]# ./configure  
步骤四:make 编译,生成可执行的二进制程序文件
]# cd  /test/inotify-tools-3.13/
]# make
步骤五:make install 安装,将编译好的文件复制到安装目录
]# cd  /test/inotify-tools-3.13/
]# make  install 
]# ls /usr/local/bin/inotifywait 
/usr/local/bin/inotifywait
• 基本用法
– inotifywait [选项] 目标文件夹
• 常用命令选项
– -m,持续监控(捕获一个事件后不退出)
– -r,递归监控、包括子目录及文件
– -q,减少屏幕输出信息
– -e,指定监视的 modify、move、create、delete、
attrib 等事件类别
三 书写Shell脚本,实时同步
for比较适合有次数的循环       
while比较适合死循环  
while  [ 条件 ]
do
         重复执行的代码
done
[root@svr7 /]# cat /root/rsync.sh
#!/bin/bash
while  inotifywait  -rqq  /opt/ 
 do
  rsync -az --delete /opt/  root@192.168.4.207:/opt/ 
 done &
[root@svr7 /]# chmod +x /root/rsync.sh
[root@svr7 /]# /root/rsync.sh
[root@svr7 /]# pgrep -l rsync
[root@svr7 /]# killall  rsync.sh
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值