2019-04-16

實(shí)踐排除復(fù)制:

?NFS01:

[root@nfs01 ~]# mkdir /data -p

[root@nfs01 ~]# cd /data

[root@nfs01 /data]# touch {a..d}

[root@nfs01 /data]# ls

--exclude 排除參數(shù)

例:排除 a b

[root@nfs01 /data]# rsync -avz /data/ --exclude=a --exclude=b rsync_backup@172.16.1.41::backup

排除1到4

[root@nfs01 /data]# touch {1..5}

[root@nfs01 /data]# rsync -avz /data/ --exclude={1..4} rsync_backup@172.16.1.41::backup

排除1,3,a

[root@nfs01 /data]# rsync -avz /data/ --exclude={1,3,a} rsync_backup@172.16.1.41::backup

--exclude-from 從文件排除

[root@nfs01 /data]# rsync -avz /data/ --exclude-from=./paichu.txt rsync_backup@172.16.1.41::backup

實(shí)踐刪除:

rsync作為鏡像,相當(dāng)于raid1,讓兩臺(tái)服務(wù)器目錄保持一致。

?--delete 讓兩臺(tái)服務(wù)器目錄保持一致

推送: rsync -avz --delete /data/ rsync_backup@172.16.1.41::backup 本地目錄有啥,遠(yuǎn)端就有啥。

注意:遠(yuǎn)端目錄是不是東西更多,多了東西會(huì)被刪除。提前備份backup對(duì)應(yīng)的目錄。

拉 :rsync -avz --delete rsync_backup@172.16.1.41::backup /data/ 遠(yuǎn)端有啥。本地目錄就有啥,

注意本地/data目錄。把/data改成根。提前注意備份本地/data

--partial 支持大文件斷點(diǎn)續(xù)傳

--bwlimit=KBPS 限速。

企業(yè)案例:

某上市公司,白天高峰期某DBA人員從數(shù)據(jù)庫(kù)服務(wù)器通過rsync將上百GB數(shù)據(jù)復(fù)制到備份服務(wù)器,導(dǎo)致數(shù)據(jù)庫(kù)庫(kù)服務(wù)器帶寬占滿,造成用戶無法訪問網(wǎng)站的悲劇。其實(shí)可以利用rsync限速功能,將復(fù)制速度限制在剩余帶寬的1/3或者1/2,可能就不會(huì)出現(xiàn)故障了

增加一個(gè)模塊

?1)最簡(jiǎn)單的實(shí)現(xiàn),可以在配置文件結(jié)尾加如下內(nèi)容(特殊底紋部分):

[data] #<==新模塊。

?path = /data/ #<==新備份目錄。

#除了增加以上兩行外,讀者也可以設(shè)定更多的獨(dú)立配置參數(shù),例如:獨(dú)立虛擬用戶,獨(dú)立密碼文件等。

2)建立目錄并授權(quán)。

?[root@backup ~]# mkdir -p /data

[root@backup ~]# chown -R rsync.rsync /data

?[root@backup ~]# ls -ld /data

3)重啟rsync服務(wù)(只要修改配置,就考慮重載服務(wù))

[root@backup ~]# systemctl restart rsyncd

4)從客戶端訪問測(cè)試

?[root@backup ~]# ls /data

1、內(nèi)部人員產(chǎn)生的數(shù)據(jù)(定時(shí)備份足矣):

?程序員開發(fā)代碼(他電腦上)==>代碼服務(wù)上(git/svn代碼版本管理)==>測(cè)試環(huán)境測(cè)試===>正式環(huán)境 原則上程序代碼可以不備份。

?運(yùn)維人員,寫個(gè)定時(shí)任務(wù),寫個(gè)備份腳本,更改或增加服務(wù)配置rsyncd.conf,需要備份

運(yùn)維人員修改配置(測(cè)試服務(wù)器)==>代碼服務(wù)器上(git/svn代碼版本管理)==>測(cè)試環(huán)境測(cè)試===>正式環(huán)境 原則上運(yùn)維人員的變更可以不備份。

2、用戶產(chǎn)生的數(shù)據(jù)(必須實(shí)時(shí)備份)

圖片、視頻等文件是放在存儲(chǔ)服務(wù)器上的,任意時(shí)刻都可能傳上來,必須實(shí)時(shí)備份。 文本(博客文章),放在數(shù)據(jù)庫(kù)里,,任意時(shí)刻都可能發(fā)布,必須實(shí)時(shí)備份。


第一個(gè)里程碑:

41搭建好rsync服務(wù),并在31、7上測(cè)試成功。

第二個(gè)里程碑

開發(fā)腳本打包備份 /backup 備份目錄 /var/spool/cron/root /etc/rc.local /server/scripts /var/html/www /app/logs 需要備份的內(nèi)容

模擬創(chuàng)建:

[root@nfs01 ~]# mkdir -p /server/scripts

[root@web01 ~]# mkdir -p /server/scripts /var/html/www /app/logs

web01:

[root@web01 ~]# mkdir -p /backup

[root@web01 ~]# ls -ld /backup/

[root@web01 /]# tar zcvhf /backup/bak_$(date +%F_%w).tar.gz /var/spool/cron/root /etc/rc.local /server/scripts /var/html/www /app/logs

[root@web01 /]# ls /backup/

bak_2019-04-16_2.tar.gz

寫腳本:

?[root@web01 /]# mkdir /server/scripts/ -p

[root@web01 /]# cd /server/scripts/

[root@web01 /server/scripts]# cat /server/scripts/bak.sh

[root@web01 /server/scripts]# cat bak.sh

#!/bin/sh

export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"

export RSYNC_PASSWORD=oldboy

IP=$(hostname -i)

mkdir -p /backup/$IP

#1.打包

tar zchf /backup/$IP/bak_$(date +%F_%w).tar.gz /var/spool/cron/root /etc/rc.local /server/scripts /var/html/www /app/logs &>/dev/null &&\

#2.刪除

find /backup/ -type f -name "*.tar.gz" -mtime +7|xargs rm -f &&\

#3.推送

?rsync -az /backup/ rsync_backup@172.16.1.41::backup &>/dev/null

[root@web01 /server/scripts]# /bin/sh /server/scripts/bak.sh

?[root@web01 /server/scripts]# ls /backup/

定時(shí)任務(wù):

[root@web01 /server/scripts]# crontab -e

[root@web01 /server/scripts]# crontab -l|tail -2

######back.....

?00 00 * * * /bin/sh /server/scripts/bak.sh >/dev/null 2>&1

[root@web01 /server/scripts]# find /backup/ -type f -name "*.tar.gz" -mtime +7|xargs rm -f

確保備份完整。 做flag和采集指紋

?[root@nfs01 /server/scripts]# md5sum oldboy.txt >zhiwen.log

?[root@nfs01 /server/scripts]# cat zhiwen.log

#校驗(yàn)

?[root@nfs01 /server/scripts]# md5sum -c zhiwen.log

[root@web01 /server/scripts]# cat bak.sh

#!/bin/sh

?export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"

export RSYNC_PASSWORD=oldboy

IP=$(hostname -i)

mkdir -p /backup/$IP

#1.打包

tar zchf /backup/$IP/bak_${IP}_$(date +%F_%w).tar.gz /var/spool/cron/root /etc/rc.local /server/scripts /var/html/www /app/logs &>/dev/null &&\

touch /backup/$IP/bak_${IP}_$(date +%F_%w).flag &&\

?#采集指紋

?find /backup/ -type f -name "*.tar.gz"|xargs md5sum >/backup/$IP/bak_${IP}_$(date +%F_%w).flag &&\

#2.刪除

find /backup/ -type f -name "*.tar.gz" -mtime +7|xargs rm -f &&\

#3.推送

?rsync -az /backup/ rsync_backup@172.16.1.41::backup &>/dev/null

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容