必備技能rsync同步備份

一、了解rsync;

為廣東等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及廣東網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(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)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(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簡(jiǎn)化輸出,-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)限

必備技能rsync同步備份

發(fā)起端操作:

rsync -avzH r_get@192.168.100.151:/opt/data/ /tmp  ##下載

必備技能rsync同步備份

必備技能rsync同步備份

rsync -avzH r_get@192.168.100.151:/opt/data /tmp  ##對(duì)比差異

必備技能rsync同步備份

必備技能rsync同步備份

rsync -avzH r_get@192.168.100.151:/opt/data/ /tmp --delete ##保證數(shù)據(jù)一致,下行同步以同步源為依據(jù)

必備技能rsync同步備份

必備技能rsync同步備份

必備技能rsync同步備份

案例:上傳

備份源操作:

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正常

必備技能rsync同步備份

發(fā)起端操作:

mkdir /data

touch /data/{1..9}.avi

rsync -avzH /data r_put@192.168.100.151:/opt/data_bak

必備技能rsync同步備份

必備技能rsync同步備份

rsync -avzH /data/ r_put@192.168.100.151:/opt/data_bak

必備技能rsync同步備份

rsync -avzH /data/ r_put@192.168.100.151:/opt/data_bak --delete

必備技能rsync同步備份

必備技能rsync同步備份

必備技能rsync同步備份

在備份源上驗(yàn)證結(jié)果。

案例:ssh密鑰對(duì)認(rèn)證后rsync同步

ssh-keygen -t rsa

必備技能rsync同步備份

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同理

必備技能rsync同步備份

執(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

必備技能rsync同步備份

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*

必備技能rsync同步備份

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

必備技能rsync同步備份

inotifywait -mrq -e modify,create,attrib,move,delete /root/data ##-m持續(xù)監(jiān)控,r遞歸目錄,q簡(jiǎn)化輸出,-e指定監(jiān)控事件:modify修改、create創(chuàng)建、attrib權(quán)限修改、move移動(dòng)、delete刪除;在其他終端操作文件,查看變化

必備技能rsync同步備份

必備技能rsync同步備份

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

必備技能rsync同步備份

chmod +x rsync_inotify.sh

rsync_inotify.sh & ##啟動(dòng)腳本

測(cè)試驗(yàn)證。

必備技能rsync同步備份

必備技能rsync同步備份

網(wǎng)頁題目:必備技能rsync同步備份
網(wǎng)站URL:http://muchs.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)

成都網(wǎng)頁設(shè)計(jì)公司