一、了解rsync;
為廣東等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及廣東網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計、做網(wǎng)站、廣東網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
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)限,遠(yuǎn)程用戶必須對目錄有寫的權(quán)限
下行同步:數(shù)據(jù)在同步源,本地登陸用戶對目錄必須有寫入權(quán)限,遠(yuǎn)程用戶必須對數(shù)據(jù)有讀的權(quán)限
二、rsync的基本使用
1、基本語法:
本地同步:rsync [選項] 數(shù)據(jù) 目標(biāo)目錄
遠(yuǎn)程上行同步: rsync [選項] 數(shù)據(jù) 用戶@IP:/目標(biāo)目錄
遠(yuǎn)程下行同步: rsync [選項] 用戶@IP:/數(shù)據(jù)/ 目標(biāo)目錄
2、常用的選項:
-avzH ##a歸檔并保留屬性,v顯示詳細(xì)信息,z壓縮,H保留硬鏈接
--delete ##刪除目標(biāo)目錄有但源數(shù)據(jù)中沒有的文件
3、注意事項
1)源數(shù)據(jù)加“/“表示同步目錄的內(nèi)容;不加”/“表示同步目錄本身及其內(nèi)容。
2)--delete選項經(jīng)常用來刪除大文件,速度很快。
4、遠(yuǎn)程同步:推薦使用SSH的方式,即安全又方便。
1)創(chuàng)建用戶(同時在發(fā)起端和同步源上完成)
2)Setfacl設(shè)置權(quán)限,保證rsync的權(quán)限和遠(yuǎn)程程序權(quán)限
3)配置ssh的密鑰隊登陸實現(xiàn)rsync無密碼執(zhí)行
4)編寫腳本和計劃任務(wù),完成定時的同步
三、rsync+inotify自動同步
1、了解inotify:linux內(nèi)核提供文件系統(tǒng)變化監(jiān)控并通知的機(jī)制,通過inotify—tool工具進(jìn)行管理。
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è)置后臺開機(jī)運行
[lu01@localhost bin]$ cat rsync_ inotify.sh
#!/bin/bash
##by www.linuxfan.cn 2016-11-25
DIR=/var/www/html/
RSYNC="rsync -azH --delete $DIRru01@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 ##確認(rèn)已經(jīng)安裝rsync軟件
netstat -uptln |grep 22
確認(rèn)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密鑰對認(rèn)證后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 * *6 /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 & ##啟動腳本
測試驗證。
網(wǎng)頁題目:必備技能rsync同步備份
網(wǎng)站URL:http://aaarwkj.com/article46/gdigeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計、軟件開發(fā)、電子商務(wù)、商城網(wǎng)站、建站公司、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)