一. ?rsync只傳輸變化的數(shù)據(jù)
完全復制
只傳輸變化的數(shù)據(jù)
rsync ? ?-a ? 歸檔模式保證權限歸屬關系等同步不變
rsync ? ?-v ?顯示詳細操作信息
rsync ? ?-z ? ?傳輸過程中啟用壓縮/解壓
rsync ???-n ?測試同步過程,同步后會有什么變化,并不會發(fā)生修改
rsync ? 【avz..】 /本地目錄1 ? ? 本地目錄2 ? ? ? ? 同步本地目錄整個文件夾到本地目錄二
rsync ? 【選項 ..】 /本地目錄1/ ? ? 本地目錄2 ? ? ? ? 同步本地目錄文件夾下的數(shù)據(jù)到本地目錄二
touch /dir/{1..10}.txt ? 創(chuàng)建文件
rsync ? ?-avz ? ?--delete ? ? /nsd/ ? ? ?/dir/ ?源目錄可以變化 并且同步,被共享目錄修改創(chuàng)建文件不同步 ? ? ?
二.遠程同步
虛擬機A:
rm -rf ? /op?/*
cp ? /etc/resolv.conf ? /etc/hosts ?/opt
ls /opt/
rsync ?-avz ?--delete /opt / ? root@192.168.4.207:/opt/
虛擬機B:
ls /opt ? 查看
三.實時同步
1.前提ssh實現(xiàn)免密碼操作驗證
* 生成公鑰和私鑰
#ssh-keygen #一路敲回車
#ls ?/root/.ssh
*.傳遞公鑰到對方的服務器
# ssh-copy-id ?root@192.168.4.207
root@192.168.4.207‘s password:
*.驗證同步無需密碼
rsync ?-avz ?--delete /opt / ? root@192.168.4.207:/opt/
四 安裝inotify-tools實現(xiàn)監(jiān)控目錄內(nèi)容變化
步驟一:安裝開發(fā)工具gcc? make
步驟二:tar解包
]# tar -xf? /tools/inotify-tools-3.13.tar.gz -C /test
]# ls? /test/inotify-tools-3.13/
步驟三: ./configure 配置,指定安裝目錄/功能模塊等選項,還可以檢測系統(tǒng)是否安裝gcc
]# cd? /test/inotify-tools-3.13/
]# ./configure?
步驟四:make 編譯,生成可執(zhí)行的二進制程序文件
]# 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,持續(xù)監(jiān)控(捕獲一個事件后不退出)
– -r,遞歸監(jiān)控、包括子目錄及文件
– -q,減少屏幕輸出信息
– -e,指定監(jiān)視的 modify、move、create、delete、
attrib 等事件類別
書寫Shell腳本,實時同步
? for比較適合有次數(shù)的循環(huán)? ? ?
? while比較適合死循環(huán)?
? while? [ 條件 ]
? do
? ? ? ? 重復執(zhí)行的代碼
? done
[root@svr7 /]# cat /root/rsync.sh
#!/bin/bash
while? inotifywait? -rq ?/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 ? ?殺死這個進程