公司實現全網備份項目:(rsync+定時任務)

企業案例:rsync實戰:

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

每天晚上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)備份服務器上檢查備份結果是否正常(備份內容變?),並將每天的備份結果發給管理員信箱。**

web應用服務器上的操作:

1、 先在命令行測試腳本里面的命令,若沒有問題再拷貝和粘貼到腳本里面

[root@web01 ~]# cat /server/scripts/bak.sh
#!/bin/bash
IP=$(hostname -I|awk  '{print $NF}')
HOSTNAME=$(hostname)
#mkdir dir
mkdir -p /backup/$IP
mkdir -p /var/www/html
#tar
tar zcf /backup/$IP/conf-$(date +%F-%w).tar.gz  /etc/ /var/www/html
#make md5
find /backup/ -type f -name "*.tar.gz"|xargs md5sum >/backup/$IP/web01.md5
#push
rsync -avz /backup/ [email protected]::backup --password-file=/etc/rsync.passwd
#del 7 day gao files
find /backup/ -type f -name "*.tar.gz" -mtime +7|xargs rm -f

2、測試腳本:

[root@web01 ~]# sh  /server/scripts/bak.sh
tar: Removing leading `/' from member names
sending incremental file list
172.16.1.7/conf-2019-05-21-2.tar.gz
172.16.1.7/web01.md5

sent 3,498 bytes  received 19,269 bytes  45,534.00 bytes/sec
total size is 10,213,793  speedup is 448.62
3、寫入定時任務:
[root@web01 ~]# crontab -l
#backup
* * * * *  /bin/sh    /server/scripts/bak.sh >/dev/null 2>&1
4、測試定時任務
(先按照每分鐘測試,若沒有問題再更改實際需要備份的時間)

backup服務器端:

1、命令行測試

[root@backup ~]# find /backup/ -type f -name "*.tar.gz" ! -name  "*-6.tar.gz" -mtime +180 | xargs rm 
rm: missing operand
Try 'rm --help' for more information.---找不到文件,正常,因爲沒有,命令沒有問題
[root@backup ~]# tree /backup
/backup
└── 172.16.1.7
    ├── conf-2019-05-21-2.tar.gz
    └── web01.md5

1 directory, 2 files
 [root@backup~]# md5sum -c /backup/*/*.md5 
/backup/172.16.1.7/conf-2019-05-21-2.tar.gz: OK

2、 命令行測試沒問題,粘貼進腳本文件

[root@backup ~]# cat /server/scripts/check.sh
#!/bin/bash
#check 
md5sum -c /backup/*/*.md5 >/backup/result.txt
#find /backup/  -type  f -name "*.md5"|xargs md5sum -c
#del 180 ago
find /backup/ -type f -name "*.tar.gz" ! -name  "*-6.tar.gz" -mtime +180 | xargs rm 
 mail -s "server is GOOD " [email protected] < /backup/result.txt

3、 測試腳本

[root@backup ~]# sh /server/scripts/check.sh

4、 設置發郵件給運維管理人員

1) 啓動系統自帶的郵件服務

[root@backup ~]# systemctl restart postfix.service 
[root@backup ~]# 
[root@backup ~]# systemctl is-active postfix.service 
active
[root@backup ~]# systemctl is-enabled  postfix.service 
enabled
[root@web01 ~]# systemctl  status   postfix.service 
● postfix.service - Postfix Mail Transport Agent
   Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2019-05-21 15:13:43 CST; 2h 36min ago
  Process: 7905 ExecStart=/usr/sbin/postfix start (code=exited, status=0/SUCCESS)
  Process: 7903 ExecStartPre=/usr/libexec/postfix/chroot-update (code=exited, status=0/SUCCESS

2)配置163郵箱---設置--啓用pop3和smtp,並設置授權碼

3)vim /etc/mail.rc

最後寫入一行:

set [email protected] smtp=smtp.163.com smtp-auth-user=xiaxia_5321
smtp-auth-password=shani123 (授權碼) smtp-auth=login

重啓一下服務
systemctl restart postfix.service
3)發從郵件:
mail -s "I love Linux " [email protected] &lt;/backup/result.txt

公司實現全網備份項目:(rsync+定時任務)

配置完成!!!運維工程師可以通過郵件,微信,電話等等工具獲取服務器相關故障報警信息。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章