linux配置文件、日誌文件全備份linux
一、分別設置兩臺主機知足試驗要求nginx
服務器 | IP | 主機名 |
nginx-web服務器 | 192.168.10.150 | web1 |
備份服務器 |
192.168.10.20 | backup |
要求:天天晚上 00 點整在 Web 服務器上打包備份系統配置文件、網站程序目錄及訪問日誌並經過 rsync 命令推送備份服務器 backup 上備份保留(備份思路能夠是先在本地按日期打包,而後再推到備份服務器 backup 上),nginx-web服務器是實際工做中的服務器,具體要求以下:web
1)服務器的備份目錄必須都爲/backup。vim
2)要備份的系統配置文件包括但不限於:bash
a.定時任務服務的配置文件(/var/spool/cron/root)。服務器
b.開機自啓動的配置文件(/etc/rc.local)。app
c.平常腳本的目錄 (/server/scripts)。 ide
d.防火牆 iptables 的配置文件(/etc/sysconfig/iptables)。優化
3)Web 服務器站點目錄(/home/www)。網站
4)Web 服務器訪問日誌路徑(/app/logs)
5)Web 服務器保留打包後的 7 天的備份數據便可(本地留存不能多於 7 天)
6)備份服務器上要按照備份web服務器的 IP 爲目錄保存備份,備份的文件按照時間名字保存。
7)備份服務器上,保留每週一的全部數據副本,其它要保留 6 個月的數據副本。
8)須要確保備份的數據儘可能完整正確,在備份服務器上對備份的數據進行檢查,把備份的成功及失敗結果信息發給系統管理員郵箱中。
二、nginx-web服務端備份代碼
[root@web1 /]#vim backup.sh
#!/bin/bash #定義變量 hostip=`hostanme -I` cd / varfile="./var/spool/cron/root ./etc/rc.local ./server/scripts ./etc/sysconfig/iptables" date=`date +%F-%a` webfile="/home/www" weblog="/app/logs" mkdir /backup > /dev/null 2>&1 mkdir -p /backup/$hostip #打包系統要求的配置文件、web站點目錄、日誌目錄 tar -zcf /backup/$hostip/${date}.tar.gz ./$varfile tar -zcf /backup/$hostip/webfile_${date}.tar.gz ./$webfile tar -zcf /backup/$hostip/weblog_${date}.tar.gz ./$weblog md5sum /backup/$hostip/* > /backup/$hostip/md5${date}.txt #經過rsync發送到備份服務器上 rcyns -avz ./backup/$hostip rsync_backup@192.168.10.20::backup --password-file=/etc/rsync.password > /dev/null 2>&1 if [ $? -ne 0 ];then echo "備份失敗" | mail -s "備份狀況" 745651470@qq.com fi #清理7天之前打包的文件 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
定時任務
[root@web1 /]# crontab -e 00 00 * * * /bin/bash backup.sh >/dev/null 2>&1
三、備份服務器端代碼
[root@backup /]# vim jiaoyan.sh #!/bin/bash date=`date +%F-%a` cd / A=(`ls /backup | xargs -n1`) for ( i=0;i< ${#A[*]};i++ ) do /usr/bin/md5sum -c /backup/${A[i]/md5${date}.txt >> ./jiaoyanjieguo 2>/dev/null ##-c選項來對文件md5進行校驗。校驗時,根據已生成的md5來進行校驗。生成當前文件的md5,並和以前已經生成的md5進行對比,若是一致,則返回OK,不然返回錯誤信息 done /bin/mail -s "備份數據" 745651470@qq.com < ./jiaoyanjieguo >dev/null 2>&1 rm -rf ./jiaoyanjieguo find /backup/ -type f -mtime +180 ! -name "*Mon*" | xargs rm -f
定時任務
[root@backup /]# crontab -e 00 06 * * * /bin/bash jiaoyan.sh > /dev/null 2>&1
注:試驗中的rsync服務的安裝參考:http://douer.blog.51cto.com/6107588/1914098
腳本功能的實現還有進一步的優化,若有好的思路能夠一塊兒分享···
參考文檔:http://caojiaoyue.blog.51cto.com/11798573/1923404