天天看點

全網備份項目解決方案執行個體大規模叢集全網備份案例

大規模叢集全網備份案例

項目要求:

1、需要備份的檔案或目錄有(原則上,隻要是運維人員寫入或更改的資料,都需要備份):
/var/spool/cron/root  /etc./rc.local  /etc/sysconfig/iptables  /var/www/html  /app/logs
2、為了規範化,每台web伺服器進行本地備份時都本分到/backup目錄下
3、每台web伺服器進行本地備份時,都備份到backup下以本機IP位址命名的目錄中
4、打的tar封包件名中需要包含執行當天的日期
5、統一備份資料的伺服器通過rsync daemon方式提供存儲備份資料的目錄/backup
6、由于web伺服器本地存儲空間有限,需要将超過7天的備份資料删除
7、為了友善的知道每次備份是否成功 我們需要做如下操作:
a.在每台web伺服器上檢查備份是否成功
b.在存儲備份資料的伺服器上檢查備份資料是否推送成功,并發送郵件至管理者郵箱
8由于備份伺服器空間有限 需要删除超過180天的備份資料,但每周六的備份資料需要永久儲存
           

用戶端上的配置:

#vim bak.sh

#!/bin/bash
IP=$(ifconfig eth1|awk -F "[ :]+" 'NR==2 {print $4}')
Path=/backup
if [ $(date +%w) -eq 0 ]
then
   Time="week_$(date +%F_%w -d "-1day")"
else
   Time=$(date +%F -d "-1day")
fi
mkdir $Path/$IP/ -p

cd / &&\
tar zcfh $Path/$IP/backup_$Time.tar.gz var/spool/cron/root etc/rc.local etc/sysconfig/iptables var/www/html app/logs server/scripts &&\
md5sum $Path/$IP/backup_$Time.tar.gz >$Path/$IP/flag_$Time.log &&\
rsync -az $Path/ [email protected]::backup --password-file=/etc/rsync.password &&\
find /backup/ -type f -mtime +7 \( -name "*.log" -o -name "*.tar.gz" \) |xargs rm -f           
00 00 * * *   /bin/sh  bak.sh  > /dev/null            
#!/bin/bash
IP=$(ifconfig eth1|awk -F "[ :]+" 'NR==2 {print $4}')
Path=/backup
if [ $(date +%w) -eq 0 ]
then
   Time="week_$(date +%F_%w -d "-1day")"
else
   Time=$(date +%F -d "-1day")
fi
LANG=en
find /backup -type f -name "*${Time}*.log"|xargs md5sum -c >>$Path/${Time}_result.log 2>&1
mail -s "$Time bak result" [email protected] <$Path/${Time}_result.log
find /backup/ -type f -mtime +180 ! -name "*week*_6*" |xargs rm -f
           
00 00 * * *   /bin/sh  baf.sh  > /dev/null 
           

繼續閱讀