linux自動定時備份web程序和mysql數據庫


  前些天受朋友說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、每天檢查腳本是否正常運行。

其它相關文章:

windows下如何對mysql進行整褲備份

mysql導入和導出數據


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM