前些天受朋友說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/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/***x.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、每天檢查指令碼是否正常執行。
linux自動定時備份web程式和mysql資料庫
前些天受朋友說linux定時備份不知道怎麼搞,叫幫忙處理一下。由於這段時間正閒著,所以也就欣然答應。由於朋友對linux不懂也希望我將操作的過程記錄下來,也就是越詳細越好。所以寫得比較 本以為半個小時或者乙個小時可以搞好,誰不知整整搞了一天。原因在哪呢?這裡也順便吐槽一下,首先問web存放在什麼地方...
mysql定時自動備份
假想環境 mysql 安裝位置 c mysql 論壇資料庫名稱為 bbs mysql root 密碼 123456 資料庫備份目的地 d db backup 程式 echo off c mysql bin mysqladmin u root password 123456 shutdown c my...
mysql 自動定時備份
說明 以下是資料庫自動備份指令碼,可以儲存成.bat的方式,然後用計畫任務去定時執行。echo 資料庫開始備份!echo off 定義磁碟 set disk d 定義單位名稱 set unit jd scjdj 定義壓縮檔案路徑 set rar c program files winrar 定義存放...