您好,登錄后才能下訂單哦!
一、了解rsync;
1、 rsync是一款類unix增量備份工具,可以實現(xiàn)快速的鏡像同步。
2、 rsync的特點:
1) 同步整個目錄(遞歸同步)樹
2) 能保持文件的屬性(權(quán)限、時間、軟硬鏈接)
3) 快速:首次同步時完全復(fù)制,再次同步只同步修改部分,且傳輸是壓縮的。
4) 安全:可以調(diào)用ssh協(xié)議加密傳輸
5) 支持匿名的站點同步,實現(xiàn)公共資源共享。
3、 rsync工作原理:
1) rsync的架構(gòu):C/S;角色分為同步源(備份源)、發(fā)起端。
發(fā)起端:發(fā)起rsync請求的。
同步端:相應(yīng)rsync請求的。
2) 同步的方向:
上行同步:數(shù)據(jù)在發(fā)起端,本地登陸用戶對數(shù)據(jù)必須有讀取權(quán)限,遠程用戶必須對目錄有寫的權(quán)限
下行同步:數(shù)據(jù)在同步源,本地登陸用戶對目錄必須有寫入權(quán)限,遠程用戶必須對數(shù)據(jù)有讀的權(quán)限
二、rsync的基本使用
1、 基本語法:
本地同步:rsync [選項] 數(shù)據(jù) 目標(biāo)目錄
遠程上行同步: rsync [選項] 數(shù)據(jù) 用戶@IP:/目標(biāo)目錄
遠程下行同步: rsync [選項] 用戶@IP:/數(shù)據(jù)/ 目標(biāo)目錄
2、 常用的選項:
-avzH ##a歸檔并保留屬性,v顯示詳細信息,z壓縮,H保留硬鏈接
--delete ##刪除目標(biāo)目錄有但源數(shù)據(jù)中沒有的文件
3、 注意事項
1) 源數(shù)據(jù)加“/“ 表示同步目錄的內(nèi)容;不加”/“表示同步目錄本身及其內(nèi)容。
2) --delete選項經(jīng)常用來刪除大文件,速度很快。
4、 遠程同步:推薦使用SSH的方式,即安全又方便。
1) 創(chuàng)建用戶(同時在發(fā)起端和同步源上完成)
2) Setfacl設(shè)置權(quán)限,保證rsync的權(quán)限和遠程程序權(quán)限
3) 配置ssh的密鑰隊登陸實現(xiàn)rsync無密碼執(zhí)行
4) 編寫腳本和計劃任務(wù),完成定時的同步
三、rsync+inotify自動同步
1、 了解inotify:linux內(nèi)核提供文件系統(tǒng)變化監(jiān)控并通知的機制,通過inotify—tool工具進行管理。
2、 調(diào)整內(nèi)核參數(shù):
max_queue_events:監(jiān)控隊列大小
max_user_instances:最多監(jiān)控實例數(shù)
max_user_watches:每個實例最多監(jiān)控文件數(shù)
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576
3、 inotify-wait命令的語法:
inotifwait -mrq -e modify,create,move,delete,attrib 目錄 選項:-m持續(xù)監(jiān)控、r遞歸、q簡化輸出,-e指定監(jiān)控事件
4. 編寫腳本并設(shè)置后臺開機運行
[lu01@localhost bin]$ cat rsync_ inotify.sh
#!/bin/bash
##by www.linuxfan.cn 2016-11-25
DIR=/var/www/html/
RSYNC="rsync -azH --delete $DIR ru01@192.168.100.151:$DIR"
INOTIFY="inotifywait -mrq -e modify,move,create,attrib,delete $DIR"
$INOTIFY |while read DIRECTORY EVENT FILE;do
$RSYNC
done
/home/lu01/bin/rsync_inotify.sh & ##后臺運行
注:rsync+inotify只在上行同步使用
案例:下載
備份源操作:
mkdir /opt/data
touch /opt/data/{1..9}.txt
useradd r_get
echo 123123 |passwd --stdin r_get
rpm -qa rsync ##確認已經(jīng)安裝rsync軟件
netstat -uptln |grep 22
確認r_get用戶對/opt/data有讀權(quán)限
發(fā)起端操作:
rsync -avzH r_get@192.168.100.151:/opt/data/ /tmp ##下載
rsync -avzH r_get@192.168.100.151:/opt/data /tmp ##對比差異
rsync -avzH r_get@192.168.100.151:/opt/data/ /tmp --delete ##保證數(shù)據(jù)一致,下行同步以同步源為依據(jù)
案例:上傳
備份源操作:
mkdir /opt/data_bak
useradd r_put
echo 123123 |passwd --stdin r_put
setfacl -m u:r_put:rwx /opt/data_bak ##確保用戶對目標(biāo)目錄有寫入權(quán)限
getfacl /opt/data_bak
確保rsync和sshd正常
發(fā)起端操作:
mkdir /data
touch /data/{1..9}.avi
rsync -avzH /data r_put@192.168.100.151:/opt/data_bak
rsync -avzH /data/ r_put@192.168.100.151:/opt/data_bak
rsync -avzH /data/ r_put@192.168.100.151:/opt/data_bak --delete
在備份源上驗證結(jié)果。
案例:ssh密鑰對認證后rsync同步
ssh-keygen -t rsa
ssh-copy-id r_get@192.168.100.151 ##給下載用戶上傳公鑰匙
ssh-copy-id r_put@192.168.100.151
ssh r_get@192.168.100.151 ##登錄驗證,r_put同理
執(zhí)行rssync同步驗證:
vi /root/bin/rsync.sh
#!/bin/bash
rsync -avzH /data/ r_put@192.168.100.151:/opt/data_bak --delete
rsync -avzH r_get@192.168.100.151:/opt/data/ /tmp --delete
grep rsync /var/spool/cron/root
if [ $? -ne 0 ];then
echo "30 0 * *?。丁?/span>/root/bin/rsync.sh &>/var/log/rsync.log" >/var/spool/cron/root
:wq
chmod +x /root/bin/rsync.sh
2.inotify+rsync實時同步:上行同步
1)安裝inotify-tools
tar zxvf inotify-tools-*.tar.gz -C /usr/src/
cd /usr/src/inotify-tools-*/
./configure &&make &&amake install
ls /usr/local/bin/inotify*
2)inotify的使用:
vi /etc/sysctl.conf
fs.inotify.max_queued_envents = 16384 ##監(jiān)控事件隊列數(shù)
fs.inotify.max_user_instances = 1024 ##監(jiān)控實例數(shù)
fs.inotify.max_user_watches = 1048576 ##監(jiān)控的文件數(shù)量
:wq
sysctl -p
inotifywait -mrq -e modify,create,attrib,move,delete /root/data ##-m持續(xù)監(jiān)控,r遞歸目錄,q簡化輸出,-e指定監(jiān)控事件:modify修改、create創(chuàng)建、attrib權(quán)限修改、move移動、delete刪除;在其他終端操作文件,查看變化
vi rsync_inotify.sh ##實時同步腳本
#!/bin/bash
RSYNC="rsync -avzH /root/data/ r_put@192.168.100.151:/opt/data_bak/ --delete"
INT_CMD="inotifywait -mrq -e modify,create,move,delete,attrib /root/data/"
$INT_CMD |while read DIRECOTRY EVENT FILE;do
$RSYNC
done
:wq
chmod +x rsync_inotify.sh
rsync_inotify.sh & ##啟動腳本
測試驗證。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。