本文共 2545 字,大约阅读时间需要 8 分钟。
• 命令用法– 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 /testrsync+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/bashwhile 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
转载地址:http://jrnwi.baihongyu.com/