MYSQL定期備份是一項重要的工作,但人工操作太繁瑣,也難避免有所疏漏,使用下面的方法即可讓系統定期備份資料。下面介紹利用系統crontab來定時執行備份檔案,按日期對備份結果進行儲存,達到備份的目的。
工具/原料
系統crontab
Linux系統
方法/步驟
建立備份資料夾
#cd /bak#mkdir mysqldata
編寫執行指令碼#nano -w /usr/sbin/bakmysql.sh注:如使用nano編輯此程式碼需在每行尾新增'&&'或';'連線符,否則生成的檔名末尾字元為亂碼程式碼:#!/bin/bash# Name:bakmysql.sh# This is a ShellScript For Auto DB Backup and Delete old Backup#backupdir=/bak/mysqlbaktime=` date +%Y%m%d%H `mysql_bin_dir/mysqldump -u user -ppassword dataname1 gzip > $backupdir/name1$time.sql.gzmysql_bin_dir/mysqldump -u user -ppassword dataname2 gzip > $backupdir/name2$time.sql.gz#find $backupdir -name "name_*.sql.gz" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1儲存退出
為指令碼新增執行許可權# chmod +x /usr/sbin/bakmysql.sh4、修改/etc/crontab(在centOS5中測試可行)#nano -w /etc/crontab 在最後一行中加入: 00 3 * * * root /usr/sbin/bakmysql.sh表示每天3點00分執行備份注:crontab配置檔案格式如下:分 時 日 月 周 命令
Redhat方法:Redhat的crontab採用按時間呼叫4個目錄(/etc/cron.hourly:每小時;/etc/cron.daily:每天;/etc/cron.weekly:每週;/etc/cron.monthly:每月)中指令碼出來執行的方式。Redhat中只需要將剛才編輯的指令碼複製到相應的目錄即可。重啟crontab# /etc/rc.d/init.d/crond restart 完成。
注意事項
時間上自己把握,比如可以定時刪N天前的備份