第九周-day36-綜合架構-rsync全網備份

企業實戰項目:rsync全網備份的過程

第九周-day36-rsync全網備份.png

某公司里有一臺Web服務器,里面的數據很重要,但是如果硬盤壞了,數據就會丟失,現在領導要求你把數據在其他機器上做一個周期性定時備份。要求如下:

1.每天晚上12點整在Web服務器A(web01 )上打包備份網站程序目錄并通過rsync命令推送到服務器B(backup)上備份保留
(備份思路可以是先在本地按日期打包,然后再利用rsync推到備份服務器上)。
rsync守護進程模式 
定時任務 (腳本)

具體要求如下:
1)Web服務器A和備份服務器B的備份目錄必須都為/backup。
#擴展要求/backup/ip地址命名目錄中
2)Web服務器站點目錄假定為(/var/www/html)。
3)Web服務器本地僅保留7天內的備份。
4)備份服務器上每周六的數據都保留,其他備份僅保留180天備份。
5)備份服務器上檢查備份結果是否正常(備份內容變?),并將每天的備份結果發給管理員信箱。
    
發郵件:    
1.注冊一個163的郵箱    
2.保證 postfix 郵件服務運行

首先準備倆臺機器
web01 10.0.0.7
backup 10.0.0.41
配置rsync守護進程模式并測試
讓服務端和客戶端可以實現推拉


然后我們來完成全網備份的任務:

一、首先是下面四步:

客戶端web01

1.取ip地址,并在/backup/下以ip地址為目錄
2.打包備份/etc/ /var/www/html 到/backup/172.16.1.7,壓縮包命名為conf-2019-05-20-1.tar.gz
3.把備份推送到backup服務器的backup模塊中
4.制作md5校驗
5.刪除7天之前的備份

1.取ip地址,并在/backup/下以ip地址為目錄

[15:48 root@web01 ~]# hostname -I
10.0.0.7 172.16.1.7 
[15:48 root@web01 ~]# hostname -I|awk '{print $NF}'
172.16.1.7
[15:49 root@web01 ~]# IP=$(hostname -I|awk '{print $NF}')
[15:49 root@web01 ~]# echo $IP
172.16.1.7
[15:49 root@web01 ~]# mkdir -p /backup/$IP
[15:50 root@web01 ~]# ll /backup/
total 0
drwxr-xr-x 2 root root 38 May 21 15:48 172.16.1.7

2.打包備份/etc/ /var/www/html 到/backup/172.16.1.7

壓縮包命名為conf-2019-05-20-1.tar.gz
創建一個/var/www/html目錄

[6:01 root@web01 ~]# mkdir -p /var/www/html
[16:01 root@web01 ~]# echo $IP
172.16.1.7
[16:01 root@web01 ~]# mkdir -p /backup/$IP
[16:01 root@web01 ~]# tar zcf /backup/$IP/conf-$(date +%F-%w).tar.gz /etc/ /var/www/html
tar: Removing leading `/' from member names
[16:01 root@web01 ~]# tree /backup/
/backup/
└── 172.16.1.7
    └── conf-2019-05-21-2.tar.gz

3.把備份推送到backup服務器的backup模塊中

[16:34 root@web01 ~]# rsync -avz /backup/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password 
sending incremental file list
./
172.16.1.7/
172.16.1.7/conf-2019-05-21-2.tar.gz

sent 10,016,822 bytes  received 54 bytes  6,677,917.33 bytes/sec
total size is 10,214,680  speedup is 1.02

服務端看一下:

[16:35 root@backup ~]# tree /backup/
/backup/
└── 172.16.1.7
    └── conf-2019-05-21-2.tar.gz

1 directory, 1 file

4. 制作md5校驗信息

[19:51 root@web01 ~]# find /backup/ -type f -name "*.tar.gz"|xargs md5sum 
37f059ed20b843ed23b212b42a8a63f2  /backup/172.16.1.7/conf-2019-05-21-2.tar.gz
[19:52 root@web01 ~]# find /backup/ -type f -name "*.tar.gz"|xargs md5sum >/backup/*/*.md5
[19:52 root@web01 ~]# cat /backup/*/*.md5
37f059ed20b843ed23b212b42a8a63f2  /backup/172.16.1.7/conf-2019-05-21-2.tar.gz

5.刪除7天之前的備份

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

以上4步完成后把/backup下的測試文件刪除掉

6.然后我們就可以寫入腳本文件了

[16:45 root@web01 ~]# vim /server/scripts/rsync_backup.sh 
#!/usr/bin/bash
. /etc/profile
#定義變量
IP=$(hostname -I|awk '{print $NF}')
HOSTNAME=$(hostname)
#創建目錄
mkdir -p /backup/$IP
#打包壓縮
tar zcf /backup/$IP/conf-$(date +%F-%w).tar.gz /etc/ /var/www/html
#md5校驗
find /backup/ -type f -name "*.tar.gz"|xargs md5sum >/backup/$IP/$HOSTNAME.md5
#推送
rsync -az /backup/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
#刪除7天之前的
find /backup/ -type f -name "*.tar.gz" -mtime +7|xargs rm -rf

md5sum校驗信息在下文中

7.執行一下腳本并查看目錄是否創建成功

[17:48 root@web01 ~]# tree /backup/
/backup/
└── 172.16.1.7
    ├── conf-2019-05-21-2.tar.gz
    └── web01.md5

1 directory, 2 files

1 directory, 1 file

8.寫入定時任務測試是否成功然后修改規定時間

每天晚上12點備份

[17:02 root@web01 ~]# crontab -e
#rsync_backup
00 00 * * * sh /server/scripts/rsync_backup.sh  >/dev/null 2>&1

二、接著我們去backup服務器上配置

我們為了方便測試,可以先創建6個從周一到周6的備份文件
忽略180天,環境中沒有

[17:12 root@backup ~]# touch /backup/172.16.1.7/conf-2019-05-21-{0..6}.tar.gz 
[17:13 root@backup ~]# find /backup/ -type f -name "*.tar.gz"
/backup/172.16.1.7/conf-2019-05-21-2.tar.gz
/backup/172.16.1.7/conf-2019-05-21-0.tar.gz
/backup/172.16.1.7/conf-2019-05-21-1.tar.gz
/backup/172.16.1.7/conf-2019-05-21-3.tar.gz
/backup/172.16.1.7/conf-2019-05-21-4.tar.gz
/backup/172.16.1.7/conf-2019-05-21-5.tar.gz
/backup/172.16.1.7/conf-2019-05-21-6.tar.gz

1.備份服務器上的每周六的數據都保留,其他備份僅保留180天備份

先測試一下如何保留周六的數據

[17:14 root@backup ~]# find /backup/ -type f -name "*.tar.gz" ! -name "*-6.tar.gz"
/backup/172.16.1.7/conf-2019-05-21-2.tar.gz
/backup/172.16.1.7/conf-2019-05-21-0.tar.gz
/backup/172.16.1.7/conf-2019-05-21-1.tar.gz
/backup/172.16.1.7/conf-2019-05-21-3.tar.gz
/backup/172.16.1.7/conf-2019-05-21-4.tar.gz
/backup/172.16.1.7/conf-2019-05-21-5.tar.gz

然后刪除掉

[17:20 root@backup ~]# find /backup/ -type f -name "*.tar.gz" ! -name "*-6.tar.gz"|xargs rm -rf
[17:21 root@backup ~]# ll /backup/172.16.1.7/
total 0
-rw-r--r-- 1 root root 0 May 21 17:13 conf-2019-05-21-6.tar.gz

2.檢查備份結果是否正常(備份內容是否改變?)

md5sum檢驗信息

[17:21 root@backup ~]# tree /backup/
/backup/
└── 172.16.1.7
    └── conf-2019-05-21-6.tar.gz

1 directory, 1 file
[17:22 root@backup ~]# find /backup/ -type f -name "*.tar.gz" |xargs md5sum
d41d8cd98f00b204e9800998ecf8427e  /backup/172.16.1.7/conf-2019-05-21-6.tar.gz
[17:22 root@backup ~]# find /backup/ -type f -name "*.tar.gz" |xargs md5sum >/backup/172.16.1.7/web01.md5
[17:23 root@backup ~]# md5sum -c /backup/172.16.1.7/web01.md5 
/backup/172.16.1.7/conf-2019-05-21-6.tar.gz: OK

校驗md5信息的幾種方法

[17:42 root@backup ~]# cp -a /backup/172.16.1.7/ /backup/172.16.1.8
[17:42 root@backup ~]# cp -a /backup/172.16.1.7/ /backup/172.16.1.9
[17:42 root@backup ~]# cp -a /backup/172.16.1.7/ /backup/172.16.1.10
[17:42 root@backup ~]# find /backup/ -type f -name "*.md5"|xargs md5sum -c
/backup/172.16.1.7/conf-2019-05-21-2.tar.gz: OK
/backup/172.16.1.7/conf-2019-05-21-2.tar.gz: OK
/backup/172.16.1.7/conf-2019-05-21-2.tar.gz: OK
/backup/172.16.1.7/conf-2019-05-21-2.tar.gz: OK
/backup/172.16.1.7/conf-2019-05-21-2.tar.gz: OK
/backup/172.16.1.7/conf-2019-05-21-2.tar.gz: OK
/backup/172.16.1.7/conf-2019-05-21-2.tar.gz: OK
[17:42 root@backup ~]# md5sum -c /backup/\*/\*.md5   \\撬棍無意義
/backup/172.16.1.7/conf-2019-05-21-2.tar.gz: OK
/backup/172.16.1.7/conf-2019-05-21-2.tar.gz: OK
/backup/172.16.1.7/conf-2019-05-21-2.tar.gz: OK
/backup/172.16.1.7/conf-2019-05-21-2.tar.gz: OK

3.將校驗信息寫入文件中

先創建一個文件/backup/md5.txt

[18:48 root@backup ~]# find /backup/ -type f -name "*.md5"|xargs md5sum -c 
/backup/172.16.1.7/conf-2019-05-21-2.tar.gz: OK
[18:51 root@backup ~]# find /backup/ -type f -name "*.md5"|xargs md5sum -c >/backup/md5.txt 
[18:52 root@backup ~]# cat /backup/md5.txt 
/backup/172.16.1.7/conf-2019-05-21-2.tar.gz: OK

4.發送郵件

1.注冊一個163的郵箱

記得添加配置郵箱的授權碼,不然郵箱會被屏蔽掉了

2.保證 postfix 郵件服務運行

[17:47 root@backup ~]# systemctl restart postfix.service 
[17:50 root@backup ~]# systemctl is-active postfix.service 
active
[17:50 root@backup ~]# systemctl is-enabled postfix.service 
enabled

3.配置郵箱配置文件

默認沒有安裝
yum install -y mailx

配置/etc/mail.rc最后一行加入:

[17:56 root@backup ~]# vim /etc/mail.rc 
....
set from=lichenxing0430@163.com
set smtp=smtp.163.com
set smtp-auth-user=lichenxing0430
set smtp-auth-password=\\郵箱密碼,這里不方便寫入
set smtp‐auth=login

執行一下發送郵件的命令

mail -s:指定郵件的主題
mail -s " Rsync Backup 完成" lichenxing0430@163.com </backup/md5.txt

稍等幾秒鐘...

5.以上完成后我們就可以將命令寫到腳本里了

[19:02 root@backup ~]# vim /server/scripts/backup.sh 
#!/bin/bash
. /etc/profile
#校驗md5信息
find /backup/ -type f -name "*.md5"|xargs md5sum -c >/backup/md5.txt
#刪除180天前的
find /backup/ -type f -name "*.tar.gz" ! -name "*-6.tar.gz" -mtime +180|xargs rm -rf
#發送郵件
mail -s " Rsync Backup 完成" 245684979@qq.com </backup/md5.txt

6.書寫定時任務

[19:06 root@backup ~]# crontab -e
#backup.sh
00 06 * * *  sh /server/scripts/check_backup.sh >/dev/null 2>&1

今天的知識點看似很多其實不多,要理解客戶端和服務端的每一條腳本命令的作用。

未完待續......

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,461評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,538評論 3 417
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,423評論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,991評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,761評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,207評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,268評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,419評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,959評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,782評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,222評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,653評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,901評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,678評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,978評論 2 374