rsync全網(wǎng)備份服務(wù)

一、 需求

每天晚上12點(diǎn)整在Web服務(wù)器A(web01 )上打包備份網(wǎng)站程序目錄并通過(guò)rsync命令推送到服務(wù)器B(backup)上備份保留
(備份思路可以是先在本地按日期打包占锯,然后再利用rsync推到備份服務(wù)器上)特恬。

二惰瓜、 具體要求如下:

1)Web服務(wù)器A和備份服務(wù)器B的備份目錄必須都為/backup。 #擴(kuò)展要求/backup/ip地址命名目錄中
2)Web服務(wù)器站點(diǎn)目錄假定為(/var/www/html)。
3)Web服務(wù)器本地僅保留7天內(nèi)的備份。
4)備份服務(wù)器上每周六的數(shù)據(jù)都保留笛质,其他備份僅保留180天備份。
5)備份服務(wù)器上檢查備份結(jié)果是否正常(備份內(nèi)容變捞蚂?)妇押,并將每天的備份結(jié)果發(fā)給管理員信箱。

三姓迅、 全網(wǎng)備份部署過(guò)程
image.png

四敲霍、環(huán)境部署

4.1 模擬環(huán)境

外網(wǎng) 內(nèi)網(wǎng) 主機(jī)名
rsync服務(wù)端 10.0.0.41 172.16.1.41 backup
rsync客戶端 10.0.0.7 172.16.1.7 web01

4.2 配置rsync服務(wù)端

4.2.1 編寫rsync服務(wù)配置文件/etc/rsyncd.conf

[root@backup ~]# cat /etc/rsyncd.conf  
#rsync server  
##created by oldboy 15:01 2019-5-20  
##rsyncd.conf start##  
fake super = yes    
uid = rsync      
gid = rsync      
use chroot = no  
max connections = 2000    
timeout = 600     
pid file = /var/run/rsyncd.pid  
lock file = /var/run/rsync.lock   
log file = /var/log/rsyncd.log   
ignore errors  
read only = false    
list = false  
#hosts allow = 10.0.0.0/24    
#hosts deny = 0.0.0.0/32      
auth users = rsync_backup     
secrets file = /etc/rsync.password 
#####################################  
[data]      
comment = www by old0boy 14:18 2012-1-13    
path = /data    
#####################################  [backup]      
comment = www by wwj 14:18 2019-5-20    
path = /backup

4.2.2 創(chuàng)建rsync服務(wù)虛擬用戶rsync

[root@backup ~]# useradd rsync -M -s /sbin/nologin
[root@backup ~]# grep 'rsync' /etc/passwd
rsync:x:1001:1001::/home/rsync:/sbin/nologin
[root@backup ~]#

4.2.3 創(chuàng)建要備份的目錄俊马,并修改備份目錄的所有者和所有者屬組為rsync

[root@backup ~]# mkdir -p /backup
 [root@backup ~]# chown -R rsync.rsync /backup
[root@backup ~]# ls -ld /backup
drwxr-xr-x 2 rsync rsync 6 May 20 20:55 /backup
[root@backup ~]#

4.2.4 編輯/etc/rsyncd.conf配置文件,在里面配置backup模塊

#####################################
[backup]    
comment = www by wwj 14:18 2019-5-20 #注釋
path = /backup    

4.2.5 創(chuàng)建密碼文件色冀,并設(shè)置權(quán)限為600

[root@backup ~]# echo "rsync_backup:123456">/etc/rsync.password  
[root@backup ~]# chmod 600 /etc/rsync.password  [root@backup ~]# ls -ld /etc/rsync.password  -rw------- 1 root root 20 May 20 21:09 /etc/rsync.password  [root@backup ~]#

4.2.6 啟動(dòng)服務(wù)

啟動(dòng)服務(wù):systemctl restart rsyncd
設(shè)置開(kāi)機(jī)自啟動(dòng):systemctl enable rsyncd

4.2.7 服務(wù)端自我檢查

[root@backup ~]# rsync -avz /etc/hostname [rsync_backup@172.16.1.41::backup](mailto:rsync_backup@172.16.1.41::backup)

4.3 配置rsync客戶端

[root@nfs01 ~]# echo "123456" >/etc/rsync.password  [root@nfs01 ~]# rsync -avz /etc/hostname rsync_backup@172.16.1.41::backup --password-file /etc/rsync.password  
sending incremental file list  
hostname  
sent 101 bytes received 49 bytes 300.00 bytes/sec  
total size is 6 speedup is 0.04  
[root@nfs01 ~]#

五潭袱、在客戶端編寫腳本

腳本存放目錄:/server/scripts/
腳本名稱:client_rsync_backup.sh

5.1 先根據(jù)需求在客戶端命令行寫對(duì)應(yīng)的命令并測(cè)試

5.1.1 創(chuàng)建對(duì)應(yīng)ip地址的目錄

[root@web01 ~]# Ip=$(hostname -I |awk '{print $NF}')  [root@web01 ~]# mkdir -p /backup/$Ip  
[root@web01 ~]# tree /backup/  /backup/  
└── 172.16.1.7  1 
directory, 0 files 
 [root@web01 ~]#

5.1.2 打包備份:打包備份/etc /var/www/html到/backup/172.16.1.7下,壓縮包叫conf-2019-5-21-1.tar.gz锋恬,以時(shí)間命名

[root@web01 ~]# tar zcf /backup/172.16.1.7/conf-$(date +%F-%w).tar.gz /etc /var/www/html  
tar: Removing leading `/' from member names  
[root@web01 ~]# tree /backup/  /backup/  
└── 172.16.1.7   
  └── conf-2019-05-22-3.tar.gz  
1 directory, 1 file  
[root@web01 ~]#

5.1.3 制作md5---用于后面校驗(yàn)(備份服務(wù)器上檢查備份結(jié)果是否正常(備份內(nèi)容變?))

[root@web01 ~]# md5sum $(find /backup/ -type f -name '*.tar.gz') >/backup/$Ip/$(hostname).md5  
[root@web01 ~]# tree /backup/  /backup/  
└── 172.16.1.7   
  ├── conf-2019-05-22-3.tar.gz   
  └── web01.md5 
 1 directory, 2 files  
[root@web01 ~]#

5.1.4 推送備份---將客戶端的備份推送到backup服務(wù)器上的backup模塊

[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-22-3.tar.gz  
172.16.1.7/web01.md5  
sent 10,015,630 bytes received 73 bytes 6,677,135.33 bytes/sec
total size is 10,214,471 speedup is 1.02  
[root@web01 ~]#

[root@backup ~]# tree /backup  
/backup  
└── 172.16.1.7
   ├── conf-2019-05-22-3.tar.gz
   └── web01.md5  1 directory, 2 files 
 [root@backup ~]#

注:編寫到腳本中的時(shí)候编丘,可以將-avz中v取消与学,即-az

5.1.5 刪除備份---刪除7天之前的備份

rm -rf $(find /backup/ -type f -mtime +7 -name '*.tar.gz')

5.2 將以上腳本編寫到定時(shí)任務(wù)腳本中

[root@web01 ~]# cat /server/scripts/client_rsync_backup.sh
#!/bin/bash  
. /etc/profile  
Host=$(hostname)          
#ip var         
Ip=$(ip a s eth1|awk -F'[ /]+' 'NR==3{print $3}')    
#date var  
Date=$(date +%F-%w)           
#make backup dir  
mkdir -p /backup/${Ip}  
#tar /etc/ /var/www/html to /backup  
tar zcf /backup/${Ip}/conf-${Date}.tar.gz /etc/ /var/www/html
#make md5  
md5sum $(find /backup/ -type f -name '*.tar.gz') >/backup/${Ip}/${Host}.md5  
#push tar file to server 
 rsync -az /backup/ rsync_backup@172.16.1.41::backup --password-file /etc/rsync.password  
#delete 7 day ago  
#rm -rf $(find /backup/ -type f -mtime +7 -name '*.tar.gz'
[root@web01 ~]#

5.3 編寫定時(shí)任務(wù)

注:根據(jù)需求編寫定時(shí)任務(wù)之前,先按照每分鐘進(jìn)行測(cè)試嘉抓,沒(méi)問(wèn)題之后修改為需求中的具體執(zhí)行時(shí)間

[root@web01 /server/scripts]# crontab -l
#backup meige server rsync
00 00 * * * sh /server/scripts/client_rsync_backup.sh >/dev/null 2>&1

5.4 遇到的錯(cuò)誤

5.4.1 Connection refused 連接拒絕

[root@web01 ~]# rsync -avz /backup/$Ip rsync_backup@172.16.1.41::backup --password-file /etc/rsync.password
rsync: failed to connect to 172.16.1.41 (172.16.1.41): Connection refused (111)
rsync error: error in socket IO (code 10) at clientserver.c(125) [sender=3.1.2]

原因:backup服務(wù)端的rsync服務(wù)沒(méi)有啟動(dòng)索守,systemctl restart rsyncd啟動(dòng)即可

六、 在服務(wù)端編寫腳本

存放腳本文件的位置:/server/scripts/
腳本名稱:server_backup_check.sh

6.1 進(jìn)行md5檢查抑片,檢查數(shù)據(jù)是否修改

方法1:md5sum -c /backup/*/*.md5 >/backup/md5.txt
方法2:find /backup/ -type f -name '*.md5'|xargs md5sum -c >/backup/md5.txt

6.2 備份服務(wù)器上每周六的數(shù)據(jù)都保留卵佛,其他備份僅保留180天備份。

find /backup/ -type f -name '*.tar.gz' ! -name '*-6.tar.gz' -mtime +180 |xargs rm -rf

6.3 將每天的備份結(jié)果發(fā)給管理員信箱敞斋。

6.3.1 配置mail使用外部SMTP發(fā)郵件

1> 注冊(cè)一個(gè)163郵箱
2> 檢查郵件服務(wù)是否啟動(dòng)及開(kāi)機(jī)自啟動(dòng)

[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> 修改/etc/mail.rc最后一行加入

set from=xinxiangyu_wwj@163.com smtp=smtp.163.com 
set smtp-auth-user=xinxiangyu_wwj@163.com smtp-auth-password=wwjfly520 smtp-auth=login

說(shuō)明:
from:是發(fā)送的郵件地址
smtp:是發(fā)生的外部smtp服務(wù)器的地址
smtp-auth-user:是外部smtp服務(wù)器認(rèn)證的用戶名
smtp-auth-password:是外部smtp服務(wù)器認(rèn)證的用戶密碼(授權(quán)碼)
smtp-auth:是郵件認(rèn)證的方式
提示:這部分要和郵件服務(wù)商提供的地址一樣才行截汪!

6.3.2 測(cè)試郵箱配置是否正確

[root@backup ~]# mail -s 'ceshi youxiang' xinxiangyu_wwj@163.com </backup/md5.txt

image

6.4 編寫服務(wù)端定時(shí)任務(wù)腳本

[root@backup ~]# cat /server/scripts/server_backup_check.sh
#!/bin/bash  
. /etc/profile  
#check  
md5sum -c /backup/*/*.md5 >/backup/md5.txt  
#find /backup/ -type f -name '*.md5'|xargs md5sum -c >/backup/md5.txt  
#del 180 ago  
#find /backup/ -type f -name '*.tar.gz' ! -name '*-6.tar.gz' -mtime +180 |xargs rm -rf  
#send mail  
mail -s 'Rsync Backup Warn' xinxiangyu_wwj@163.com </backup/md5.txt  
[root@backup ~]#

6.5 編寫服務(wù)器端定時(shí)任務(wù)

注:根據(jù)需求編寫定時(shí)任務(wù)之前,先按照每分鐘進(jìn)行測(cè)試植捎,檢查沒(méi)問(wèn)題之后修改為需求中的具體執(zhí)行時(shí)間

[root@ backup /server/scripts]# crontab -l
#backup meige server rsync
00 00 * * * sh /server/scripts/ server_backup_check.sh >/dev/null 2>&1
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末衙解,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子焰枢,更是在濱河造成了極大的恐慌蚓峦,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件济锄,死亡現(xiàn)場(chǎng)離奇詭異暑椰,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)荐绝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門一汽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人很泊,你說(shuō)我怎么就攤上這事角虫。” “怎么了委造?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵戳鹅,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我昏兆,道長(zhǎng)枫虏,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮隶债,結(jié)果婚禮上腾它,老公的妹妹穿的比我還像新娘。我一直安慰自己死讹,他們只是感情好瞒滴,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著赞警,像睡著了一般妓忍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上愧旦,一...
    開(kāi)封第一講書(shū)人閱讀 51,692評(píng)論 1 305
  • 那天世剖,我揣著相機(jī)與錄音,去河邊找鬼笤虫。 笑死旁瘫,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的琼蚯。 我是一名探鬼主播酬凳,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼凌停!你這毒婦竟也來(lái)了粱年?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤罚拟,失蹤者是張志新(化名)和其女友劉穎台诗,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體赐俗,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡拉队,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了阻逮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片粱快。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖叔扼,靈堂內(nèi)的尸體忽然破棺而出事哭,到底是詐尸還是另有隱情,我是刑警寧澤瓜富,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布鳍咱,位于F島的核電站,受9級(jí)特大地震影響与柑,放射性物質(zhì)發(fā)生泄漏谤辜。R本人自食惡果不足惜蓄坏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望丑念。 院中可真熱鬧涡戳,春花似錦、人聲如沸脯倚。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)推正。三九已至胳岂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間舔稀,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工掌测, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留内贮,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓汞斧,卻偏偏與公主長(zhǎng)得像夜郁,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子粘勒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容