[FreeBSD]定期備份mysql檔案及刪除過期檔案
發表於 : 2011年 7月 13日, 15:49
利用 crontab 進行定期排程備份檔案, 程式如下:
其中 DATABASENAME1 .... 是資料庫名稱, 可同時放多個資料庫, 而使用 $(date +"%Y%m%d") 產生以日期變數, 合入備份檔名中, 最後利用 find 指令, 用來進行刪除指定時間前的過期備份檔, 如上例 -mtime 5 為剛好第 5天的檔案. 若要找出超過第 5天的檔案, 得使用 -mtime +5 這樣才可以, 另外這個 mtime 是指每 24小時為一天, 並不是用日期來比對, 要特別注意, 相關資料可以參考:
http://www.ssorc.tw/rewrite.php/read-939.html
http://note.tcc.edu.tw/548.html
ps 產生檔名如下
DATABASENAME1-20110213.sql
DATABASENAME2-20110213.sql
DATABASENAME3-20110213.sql
...
並將指令存成執行檔後, 再排入 crontab 中即可!
記得排入 crontab 中的指令, 都要給出完整路徑, 才不會在 cron 執行時發生找不到路徑而失敗的狀況!
參考資料: http://bash.cyberciti.biz/backup/backup ... -server-2/
代碼: 選擇全部
#!/bin/sh
for dbname in DATABASENAME1 DATABASENAME2 DATABASENAME3
do
SQLFILE="/var/backup/$dbname-$(date +"%Y%m%d").sql"
/usr/local/bin/mysqldump $dbname -u backupaccount -pbackuppassword > $SQLFILE
done
#delete 5 days files
/usr/bin/find /var/backup/ -name "*.sql" -mtime 5 -exec rm {} \;
http://www.ssorc.tw/rewrite.php/read-939.html
http://note.tcc.edu.tw/548.html
ps 產生檔名如下
DATABASENAME1-20110213.sql
DATABASENAME2-20110213.sql
DATABASENAME3-20110213.sql
...
並將指令存成執行檔後, 再排入 crontab 中即可!
記得排入 crontab 中的指令, 都要給出完整路徑, 才不會在 cron 執行時發生找不到路徑而失敗的狀況!
參考資料: http://bash.cyberciti.biz/backup/backup ... -server-2/