mysql定時備份


原文地址:

http://www.niu12.com/article/1

 

就在前兩天,在玩docker的時候,才疏學淺,把服務器的數據庫全刪了,經過這兩天的整理,
個人項目也都恢復正常了,但是數據都沒有了。
倒不覺得是件壞事,吃虧還是要趁早吧。這不,趕緊弄了每天數據庫備份和阿里雲快照,
幸虧是私人的,如果是公司項目的話,可能真的就FF了。

也不是沒有學到東西,現在就吧mysql在linux下的定時備份寫一下, 也算是對以前不足的知識點進行補充。

首先是要對定時任務的知識補充。

1.定時任務crontab的安裝與啟動相關
service crond start // 啟動服務
service crond stop // 關閉服務
service crond restart // 重啟服務
service crond reload // 重新載入配置
service crond status // crontab服務狀態

2.crond -e 進入定時任務

crond -l 查看該用戶下的crontab服務是否創建成功

查看服務是否已經運行用 ps -ax | grep cron

3.定時任務的格式
crontab 格式:

基本格式 :

分鍾   小時   日   月   星期   命令

*   *   *    *   *    *

第1列表示分鍾1~59 每分鍾用*或者 */1表示 每5分鍾用*或者 */5表示
第2列表示小時1~23(0表示0點)
第3列表示日期1~31
第4列 表示月份1~12
第5列標識號星期0~6(0表示星期天)
第6列要運行的命令

記住幾個特殊符號的含義:
“*”代表取值范圍內的數字,
“/”代表”每”,
“-”代表從某個數字到某個數字,
“,”分開幾個離散的數字 

crontab文件的一些例子:
(1) 30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重啟apache

(2)45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重啟apache
(3)10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重啟apache。
(4)*/2 * * * * /bin/sh /deleteFile.sh
上面的例子表示每兩分鍾執行deleteFile.sh這個腳本

4.mysql數據備份
crontab -e
(1)0 0 * * * /usr/bin/sh /usr/local/crontab_script/mysql_blog_backup.sh >> /usr/local/crontab_script/mysql_blog_backup.log

上面的例子表示每天零點通過/usr/bin/sh命令 執行/usr/local/crontab_script/mysql_blog_backup.sh腳本,
並將日志輸入到/usr/local/crontab_script/mysql_blog_backup.log日志文件中

(2)/usr/local/crontab_script/mysql_blog_backup.sh腳本文件
# Name:test_database_backup.sh
# This is a ShellScript For Auto DB Backup and Delete old Backup
#備份地址
backupdir=/applications/data/backup/mysql/blog
#備份文件后綴時間
time=_` date +%Y_%m_%d_%H_%M_%S `
#需要備份的數據庫名稱
db_name=blog
#mysqldump命令使用絕對路徑
/usr/bin/mysqldump $db_name | gzip > $backupdir/$db_name$time.sql.gz
#刪除7天之前的備份文件
find $backupdir -name $db_name"*.sql.gz" -type f -mtime +7 -exec rm -rf {} \; > /dev/null 2>&1

(3)在上面的腳本文件中並沒有寫入數據庫用戶名和密碼,所以需要
vim /etc/my.cnf
[mysqldump]
quick
max_allowed_packet = 16M
#在這里輸入user及password,在執行mysqldump命令就不用輸入用戶名和密碼了
user=root
password=123456
(4)執行service crond restart即可


免責聲明!

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



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