為了減輕DBA的工作,資料庫自動備份當然少不了,今天我和大家一起來學習通過crontab實作mysql資料的自動備份
我們在/etc/cron.daily/目錄下建立檔案backup内容如下
#!/bin/bash
#定義變量name的值,/bin/date日期格式為Y年-m月-d日
name=`/bin/date "+%Y-%m-%d"`
#/usr/bin/mysqldump 備份資料庫的指令路徑
#-u root 資料庫的使用者名
#-p password 資料庫的密碼把password替換成你自己的密碼
#--opt database 你要備份的資料庫 如果要備份所有的庫你可以把--opt database替換成--all-databases前面那個database是你資料庫的名字,後面的databases是mysqldump的參數别搞混了
#/home/backup/database$name.sql這個是資料庫備份的路徑,$符号後面的name就是最前面定義的那個日期,備份的檔案将會以你自己定義的檔案名加當時的日期來命名
/usr/bin/mysqldump -u root -ppassword --opt test > /home/backup/test$name.sql
#這個就是備份所有資料庫的指令,和前面的有點小差别
/usr/bin/mysqldump -u root -ppassword --all-databases | gzip --fast > /home/backup/full$name.gz
不一樣的地方就是把--opt改成了--all-databases,再就是後面的壓縮參數gzip,這個參數也可以使用到前面的那個單個資料庫的備份指令中
儲存退出
#修改檔案backup為可執行檔案
chmod +x /etc/cron.daily/backup
進入crontab的配置檔案
# cat /etc/crontab
#每小時執行一次/etc/cron.hourly/目錄下的檔案
01 * * * * root run-parts /etc/cron.hourly
#每天執行一次/etc/cron.hourly/目錄下的檔案,執行時間是04點
00 04 * * * root run-parts /etc/cron.daily
#每周執行一次/etc/cron.hourly/目錄下的檔案,每周的第一天04點22分
22 4 * * 0 root run-parts /etc/cron.weekly
每月執行一次/etc/cron.hourly/目錄下的檔案,每月的第一天04點42分
42 4 1 * * root run-parts /etc/cron.monthly
剛才我們已經把backup腳本建立到了/etc/cron.daily這個目錄下,也就是每天04點都會自動執行腳本做資料庫的備份了
#重新開機crond服務
service crond restart
本文轉自yunlielai51CTO部落格,原文連結:http://blog.51cto.com/4925054/1105806,如需轉載請自行聯系原作者