溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

必備技能rsync同步備份

發(fā)布時間:2020-06-23 02:08:39 來源:網(wǎng)絡(luò) 閱讀:473 作者:linuxfan_小君 欄目:網(wǎng)絡(luò)安全

一、了解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、 了解inotifylinux內(nèi)核提供文件系統(tǒng)變化監(jiān)控并通知的機制,通過inotifytool工具進行管理。

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  modifycreate,move,deleteattrib 目錄  選項:-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)限

必備技能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   ##對比差異

必備技能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   ##確保用戶對目標(biāo)目錄有寫入權(quán)限

getfacl /opt/data_bak

確保rsyncsshd正常



必備技能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同步備份

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


案例:ssh密鑰對認證后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  ##登錄驗證,r_put同理

必備技能rsync同步備份

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


必備技能rsync同步備份

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*

必備技能rsync同步備份

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

必備技能rsync同步備份

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刪除;在其他終端操作文件,查看變化

必備技能rsync同步備份

必備技能rsync同步備份

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


必備技能rsync同步備份

chmod +x  rsync_inotify.sh

rsync_inotify.sh  & ##啟動腳本

測試驗證。

必備技能rsync同步備份

必備技能rsync同步備份


向AI問一下細節(jié)

免責(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)容。

AI