前些天受朋友說linux定時備份不知道怎么搞,叫幫忙處理一下。由於這段時間正閑着,所以也就欣然答應。由於朋友對linux不懂也希望我將操作的過程記錄下來,也就是越詳細越好。所以寫得比較$%^&*。本以為半個小時或者一個小時可以搞好,誰不知整整搞了一天。原因在哪呢?這里也順便吐槽一下,首先問web存放在什么地方?不知,給了個ftp。然后進去一看,各種壓縮包,各種目錄備份,混亂不堪,為了防止磁盤被撐爆,所以一個個目錄確認,哪些目錄是要的哪些是不要的,然后一個個刪掉。還有mysql數據庫,問用的哪個?不知,又是一通的等,一遍遍地確認。好吧,這也都算了。等我搞好了,然后說每天檢查一下。誰不知,程序猿最怕發生的事情義無意外地發生了。目錄搞錯,這不等於萬惡的改需求嗎?腦子瞬間都是各種@!#$%^&*(!@#$%^^&*()。好吧,不接都已經接了認了吧。好了吐槽至此,不廢話入正題。
需求:
1、每天定時備份web程序和mysql數據庫
2、web程序、web日志和mysql數據庫備份均保留7天
說明:
web目錄:/chinasofti/www/bbswebdir
web日志目錄:/chinasofti/www/bbswebdir/httplogs
日志文件名格式:myweb.com-access_log_YYYYMMDD,myweb.com-error_log_YYYYMMDD,如myweb.com-access_log_20150508,myweb.com-error_log_20150508
備份腳本存放目錄:/chinasofti/wwwbakscript/
備份文件存放目錄:/chinasofti/wwwbakdir/
web備份文件名格式:bbs.myweb.com_YYYYMMDD,如bbs.myweb.com_20150508.tar.gz
mysql備份文件格式:數據庫名_$(date +%Y%m%d).sql.gz
寫在前面:務必注意各個目錄的說明,運用是注意修改。完全不改是用不了的。注意各個目錄和文件的對應關系。
淡綠色底的為linux命令,淡黃色底的為shell腳本內容,其他的為備注說明。
操作步驟
root用戶登陸后
1、切換目錄
cd /chinasofti/wwwbakscript
2、創建備份腳本
vi mywebbak.sh
按i然后輸入以下內容
#!/bin/bash
#backup /chinasofti/www/bbswebdir and database
###################切換到web目錄#################
cd /chinasofti/www/bbswebdir
###################刪除web日志#################
rm -f ./httplogs/myweb.com-access_log_$(date +%Y%m%d --date='7 days ago')
rm -f ./httplogs/myweb.com-error_log_$(date +%Y%m%d --date='7 days ago')
###################刪除備份文件#################
rm -f /chinasofti/wwwbakdir/bbs.myweb.com_$(date +%Y%m%d --date='7 days ago').tar.gz
###################備份web程序#################
tar -zcf /chinasofti/wwwbakdir/bbs.myweb.com_$(date +%Y%m%d).tar.gz ./* ./.[!.]*
###################刪除備份數據庫####################
rm -f /chinasofti/wwwbakdir/數據庫名_$(date +%Y%m%d --date='7 days ago').sql.gz
###################備份數據庫####################
mysqldump -u數據庫賬號 -p"數據庫密碼" 數據庫 | gzip >/chinasofti/wwwbakdir/數據庫名_$(date +%Y%m%d).sql.gz
#################導出單個表數據和結構############
#mysqldump -u賬號 -p 數據庫名 表名 > /root/XXXX.sql
添加完成后,按鍵盤右上角的“esc”鍵,然后輸入英文的冒號加x(:x),回車完成。
注意:紅色字體部分為路徑(注意修改),品紅色部分為文件名(注意修改)。
4、添加可執行權限
chmod +x mywebbak.sh
5、定時執行
crontab -e
按i編輯,添加運行的腳本和時間。如:
0 1 * * * /chinasofti/wwwbakscript/mywebbak.sh
則為每天凌晨1點執行,/chinasofti/wwwbakscript/mywebbak.sh這個shell腳本。
修改完成后,按鍵盤右上角的“esc”鍵,然后輸入英文的冒號加x(:x),回車完成。
6、每天檢查腳本是否正常運行。
其它相關文章:
