一末荐、實(shí)踐排除復(fù)制:
1)NFS01:--exclude 排除參數(shù)
[root@nfs01 ~]# mkdir /data -p
[root@nfs01 ~]# cd /data
[root@nfs01 /data]# touch {a..d}
[root@nfs01 /data]# ls
a? b? c? d
例:排除 a b
[root@nfs01 /data]# rsync -avz /data/ --exclude=a --exclude=b? rsync_backup@172.16.1.41::backup
sending incremental file list
./
c
d
2)--exclude-from 從文件排除
[root@nfs01 /data]# rsync -avz /data/ --exclude-from=./paichu.txt? rsync_backup@172.16.1.41::backup
sending incremental file list
./
16
17
18
19
20
paichu.txt
上述文件中seq 15 >paichu.txt
3)實(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 限速枢劝。
二、在?配置文件/etc/rsyncd.conf增加心的備份目錄
1)末端增加
[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
drwxr-xr-x 2 rsync rsync 6 4月? 16 10:04 /data
3)重啟rsync服務(wù)(只要修改配置侦锯,就考慮重載服務(wù))
[root@backup ~]# systemctl restart rsyncd
4)從客戶端訪問測(cè)試
[root@backup ~]# ls /data
etc
三、企業(yè)案例
具體備份需求
? 所有服務(wù)器的備份目錄必須都為/backup ? 要備份的系統(tǒng)配置文件包括但不限于: a) 定時(shí)任務(wù)服務(wù)的配置文件 (/var/spool/cron/root) (適合 web 和 nfs 服 務(wù)器) 秦驯。 b) 開機(jī)自啟動(dòng)的配置文件? (/etc/rc.local)? (適合web 和 nfs 服務(wù)器) 尺碰。
c) 日常腳本的目錄? ? (/server/scripts)。 ? Web 服務(wù)器站點(diǎn)目錄假定為/var/html/www译隘,如果沒有可以先模擬創(chuàng)建亲桥。 ? Web 服務(wù)器訪問日志路徑假定為/app/logs,如果沒有可以先模擬創(chuàng)建固耘。 ? Web 服務(wù)器本地保留打包后的 7 天備份數(shù)據(jù)即可(本地留存不能多于 7 天题篷, 因?yàn)樘嘤脖P會(huì)滿) 。 ? 備份服務(wù)器 backup 上,保留最近 7 天的備份數(shù)據(jù)厅目,同時(shí)保留 6 個(gè)月內(nèi)每周一 的所有數(shù)據(jù)副本番枚。 ? 備份服務(wù)器上,要按照備份數(shù)據(jù)服務(wù)器的內(nèi)網(wǎng) IP 為目錄保存?zhèn)浞荩瑐浞莸奈?件按照時(shí)間名字保存损敷。 ? 需要確保備份的數(shù)據(jù)盡量完整正確葫笼,在 備份服務(wù)器上對(duì)備份的數(shù)據(jù)是否完整 進(jìn)行檢查。
? 每天早晨 8:00 把備份成功或失敗結(jié)果信息發(fā)給系統(tǒng)管理員郵箱中拗馒。
第一個(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/
drwxr-xr-x 2 root root 6 4月? 16 11:36 /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
tar: 從成員名中刪除開頭的“/”
/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/
bak_2019-04-16_2.tar.gz
定時(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]# #采集人的指紋
[root@nfs01 /server/scripts]# md5sum oldboy.txt >zhiwen.log
[root@nfs01 /server/scripts]# cat zhiwen.log
348bd3ce10ec00ecc29d31ec97cd5839? oldboy.txt
[root@nfs01 /server/scripts]# #校驗(yàn)
[root@nfs01 /server/scripts]# md5sum -c zhiwen.log
oldboy.txt: 確定
[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