一、了解rsync;
為廣東等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及廣東網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、廣東網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
1、rsync是一款類unix增量備份工具,可以實(shí)現(xiàn)快速的鏡像同步。
2、rsync的特點(diǎn):
1)同步整個(gè)目錄(遞歸同步)樹
2)能保持文件的屬性(權(quán)限、時(shí)間、軟硬鏈接)
3)快速:首次同步時(shí)完全復(fù)制,再次同步只同步修改部分,且傳輸是壓縮的。
4)安全:可以調(diào)用ssh協(xié)議加密傳輸
5)支持匿名的站點(diǎn)同步,實(shí)現(xiàn)公共資源共享。
3、rsync工作原理:
1)rsync的架構(gòu):C/S;角色分為同步源(備份源)、發(fā)起端。
發(fā)起端:發(fā)起rsync請(qǐng)求的。
同步端:相應(yīng)rsync請(qǐng)求的。
2)同步的方向:
上行同步:數(shù)據(jù)在發(fā)起端,本地登陸用戶對(duì)數(shù)據(jù)必須有讀取權(quán)限,遠(yuǎn)程用戶必須對(duì)目錄有寫的權(quán)限
下行同步:數(shù)據(jù)在同步源,本地登陸用戶對(duì)目錄必須有寫入權(quán)限,遠(yuǎn)程用戶必須對(duì)數(shù)據(jù)有讀的權(quán)限
二、rsync的基本使用
1、基本語法:
本地同步:rsync [選項(xiàng)] 數(shù)據(jù) 目標(biāo)目錄
遠(yuǎn)程上行同步: rsync [選項(xiàng)] 數(shù)據(jù) 用戶@IP:/目標(biāo)目錄
遠(yuǎn)程下行同步: rsync [選項(xiàng)] 用戶@IP:/數(shù)據(jù)/ 目標(biāo)目錄
2、常用的選項(xiàng):
-avzH ##a歸檔并保留屬性,v顯示詳細(xì)信息,z壓縮,H保留硬鏈接
--delete ##刪除目標(biāo)目錄有但源數(shù)據(jù)中沒有的文件
3、注意事項(xiàng)
1)源數(shù)據(jù)加“/“表示同步目錄的內(nèi)容;不加”/“表示同步目錄本身及其內(nèi)容。
2)--delete選項(xiàng)經(jīng)常用來刪除大文件,速度很快。
4、遠(yuǎn)程同步:推薦使用SSH的方式,即安全又方便。
1)創(chuàng)建用戶(同時(shí)在發(fā)起端和同步源上完成)
2)Setfacl設(shè)置權(quán)限,保證rsync的權(quán)限和遠(yuǎn)程程序權(quán)限
3)配置ssh的密鑰隊(duì)登陸實(shí)現(xiàn)rsync無密碼執(zhí)行
4)編寫腳本和計(jì)劃任務(wù),完成定時(shí)的同步
三、rsync+inotify自動(dòng)同步
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)控隊(duì)列大小
max_user_instances:最多監(jiān)控實(shí)例數(shù)
max_user_watches:每個(gè)實(shí)例最多監(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目錄 選項(xiàng):-m持續(xù)監(jiān)控、r遞歸、q簡化輸出,-e指定監(jiān)控事件
4. 編寫腳本并設(shè)置后臺(tái)開機(jī)運(yùn)行
[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 & ##后臺(tái)運(yùn)行
注: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用戶對(duì)/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 ##對(duì)比差異
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 ##確保用戶對(duì)目標(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
在備份源上驗(yàn)證結(jié)果。
案例:ssh密鑰對(duì)認(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 ##登錄驗(yàn)證,r_put同理
執(zhí)行rssync同步驗(yàn)證:
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實(shí)時(shí)同步:上行同步
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)控事件隊(duì)列數(shù)
fs.inotify.max_user_instances = 1024 ##監(jiān)控實(shí)例數(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移動(dòng)、delete刪除;在其他終端操作文件,查看變化
vi rsync_inotify.sh ##實(shí)時(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 & ##啟動(dòng)腳本
測(cè)試驗(yàn)證。
網(wǎng)頁題目:必備技能rsync同步備份
網(wǎng)站URL:http://m.rwnh.cn/article46/gdigeg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、軟件開發(fā)、電子商務(wù)、商城網(wǎng)站、建站公司、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)