項目要求:
一、須要備份的文件或目錄有(原則上,只要是運維人員寫入或更改的數據,都須要備份):
/var/spool/cron/root /etc./rc.local /etc/sysconfig/iptables /var/www/html /app/logs
二、爲了規範化,每臺web服務器進行本地備份時都本分到/backup目錄下
三、每臺web服務器進行本地備份時,都備份到backup下以本機IP地址命名的目錄中
四、打的tar包文件名中須要包含執行當天的日期
五、統一備份數據的服務器經過rsync daemon方式提供存儲備份數據的目錄/backup
六、因爲web服務器本地存儲空間有限,須要將超過7天的備份數據刪除
七、爲了方便的知道每次備份是否成功 咱們須要作以下操做:
a.在每臺web服務器上檢查備份是否成功
b.在存儲備份數據的服務器上檢查備份數據是否推送成功,併發送郵件至管理員郵箱
8因爲備份服務器空間有限 須要刪除超過180天的備份數據,但每週六的備份數據須要永久保存html
客戶端上的配置:web
#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/ -pvim
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/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password &&\
find /backup/ -type f -mtime +7 ( -name ".log" -o -name ".tar.gz" ) |xargs rm -fbash
#crontab -e
00 00 * /bin/sh bak.sh > /dev/null 服務器
備份服務器上的配置
#vim baf.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
LANG=en
find /backup -type f -name "${Time}.log"|xargs md5sum -c >>$Path/${Time}_result.log 2>&1
mail -s "$Time bak result" oldboytraining@163.com <$Path/${Time}_result.log
find /backup/ -type f -mtime +180 ! -name "week_6*" |xargs rm -f併發
#crontab -e
00 00 * /bin/sh baf.sh > /dev/null app