linux 全網備份項目

linux全網備份項目

要求

1、基本備份要求
已知 3 臺服務器主機名分別爲 web01、backup 、nfs01,主機信息見下表:
服務器說明 外網IP(NAT) 內網IP(NAT) 主機名稱
     nginx web 服務器 10.0.0.8/24 172.16.1.8/24 web01

     NFS存儲服務器 10.0.0.31/24 172.16.1.31/24 nfs01

     rsync備份服務器 10.0.0.41/24 172.16.1.41/24 backup 
要求:每天晚上 00 點整在 Web 服務器上打包備份系統配置文件、網站程序目錄及訪問日誌並通過 rsync 命令推送備份服務器 backup 上備份保留(備份思路可以是先在本地按日
期打包,然後再推到備份服務器 backup 上) ,NFS 存儲服務器同 Web 服務器,實際工作 中就是全部的服務器。
具體要求如下:
1)所有服務器的備份目錄必須都爲/backup。

2)要備份的系統配置文件包括但不限於:

a.定時任務服務的配置文件(/var/spool/cron/root)(適合 web 和 nfs 服務器) 。

b.開機自啓動的配置文件(/etc/rc.local)(適合 web 和 nfs 服務器) 。

c.日常腳本的目錄 (/server/scripts)。 d.防火牆 iptables 的配置文件(/etc/sysconfig/iptables)。

3)Web 服務器站點目錄(/var/html/www)。

4)Web 服務器 A 訪問日誌路徑(/app/logs)

5)Web 服務器保留打包後的 7 天的備份數據即可(本地留存不能多於 7 天,因爲太多硬盤會 滿)

6)備份服務器上,保留每週一的所有數據副本,其它要保留 6 個月的數據副本。

7)備份服務器上要按照備份數據服務器的內網 IP 爲目錄保存備份,備份的文件按照時間名 字保存。

8)*需要確保備份的數據儘量完整正確,在備份服務器上對備份的數據進行檢查,把備份的成功及失敗結 果信息發給系統管理員郵箱中。

具體代碼如下

客戶端

#!/bin/bash

#---------------------------------------------------------------------

#定義變量
hostip=`hostname -I|awk '{print $2}'`
cd /    
varfile="./var/spool/cron/root ./etc/rc.local ./server/scripts ./etc/sysconfig/iptables"
date=`date +%F-%a`
webfile="/var/html/www"
weblog="/app/logs"
mkdir /backup >/dev/null 2>&1
mkdir -p /backup/$hostip
#-------------------------------------------------------------------
#打包系統配置文件、web站點目錄、日誌訪問路徑
tar -zchf /backup/${hostip}/${date}.gz.tar ./$varfile
tar -zcf /backup/${hostip}/webfile_${date}.gz.tar ./$webfile
tar -zcf /backup/${hostip}/weblog_${date}.gz.tar ./$weblog
md5sum /backup/${hostip}/* >/backup/${hostip}/md5${date}.txt
#--------------------------------------------------------------------
#清理包,因爲你已經把內容傳輸過去了,留着沒有意義
find /backup/${hostip}/ -type f -mtime +7  -name "*.tar"|xargs rm -f
find /backup/${hostip}/ -type f -mtime +7  -name "md5.txt"|xargs rm -f
#---------------------------------------------------------------------
#通過rsync發送到備份服務器上
rsync -a ./backup/${hostip} [email protected]::backup --password-file=/etc/rsync.password >/dev/null 2>&1
if [ $? -ne 0 ];then
echo "備份失敗"|mail -s "nfs備份情況" [email protected] >/dev/null 2>&1
fi

定時任務

crontab -e

00 00 * * * /bin/bash 文件 >/dev/null 2>$1

服務端代碼

#!/bin/bash
cd /
A=(`ls backup|xargs -n1`)
for ((i=0;i<${#A[*]};i++));do
/usr/bin/md5sum -c /backup/${A[i]}/md5`date +%F-%a`.txt >>./ceshi  2>/dev/null
a=$a[a+1]
done
/bin/mail -s "備份數據" [email protected] <./ceshi >/dev/null 2>&1
rm -f ./ceshi
find /backup/ -type f -mtime +180 ! -name "*Mon*" | xargs rm -f

#自動獲取/backup下的目錄並且比較適合多臺服務器

定時任務

crontab -e

00 06 * * * /bin/bash 文件 >/dev/null 2>$1


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