這個裏的自動備份是在mysql所安裝的linux服務器上進行的
1、檢查有沒安裝crond,如果沒有,先安裝
yum -y install vixie-cron
如果執行yum -y install vixie-cron 報No package vixie-cron available錯誤的話,建議直接下載vixie-cron源碼包進行安裝(不報錯忽略此處)
#使用vixie-cron源碼包安裝
#首先下載源碼包
wget -c http://down1.chinaunix.net/distfiles/vixie-cron-4.1.tar.bz2
#解壓
tar -jxvf vixie-cron-4.1.tar.bz2
#編譯安裝(先進入解壓文件夾cd vixie-cron-4.1)
make && make install
安裝vixie-cron後,再安裝crontabs(如果在安裝vixie-cron之前安裝了crontabs,先卸載再安裝crontabs;卸載命令:yum -y remove crontabs)
yum -y install crontabs
2、創建保存備份文件的路徑/mysqldata(我這裏是在根目錄創建了mysqldata的文件夾)
mkdir /mysqldata
3、切換到/usr/sbin目錄,創建bakmysql.sh腳本:
touch bakmysql.sh
4、打開文件
vi bakmysql.sh
5、輸入以下命令內容(
-uusername 對應是 -u+數據庫用戶名,比如root(-u+root):-uroot
-ppassword 對應是 -u+數據庫密碼,比如123(-p+123):-p123
database 對應是數據庫名字
/mysqldata/uptrydate +%Y-%m-%d_%H%M%S
.sql.gz 對應是備份文件 的存放的位置,/mysqldata 是前面創建 的文件夾,uptrydate +%Y-%m-%d_%H%M%S
.sql.gz 是文件的名字
):
/mysqldata/uptry`date +%Y-%m-%d_%H%M%S`.sql.gz" data-snippet-id="ext.1cd69df66556921cef9a4817db31728c" data-snippet-saved="false" data-codota-status="done">mysqldump -uusername -ppassword database | gzip > /mysqldata/uptry`date +%Y-%m-%d_%H%M%S`.sql.gz
6、修改文件屬性,使其可以執行
chmod +x /usr/sbin/bakmysql.sh
7、在/usr/sbin目錄下執行下面的命令,測試腳本是否成功(如果失敗,一般由於數據庫的權限問題引起的,具體根據錯誤提示進行修改):
./bakmysql.sh
8、然後新建crontab 任務:
crontab -e
9、添加下面一行命令:(按i鍵進入編輯模式,編輯完成按ESC鍵退出編輯模式,再輸入:wq退出並保存文件)具體參數解析看文章最後
#分鐘 小時 幾號 月份 星期幾 要執行的腳本(或命令)
00 17 * * * /usr/sbin/bakmysql.sh # (root用戶不需要指定執行的用戶名 )
或者
00 17 * * * username /usr/sbin/bakmysql.sh #(usetname 爲用戶名)
保存退出。
重啓服務:
/etc/rc.d/init.d/crond restart
或者
service crond start 啓動
service crond restart 重啓
service crond stop 停止
service crond status 查詢狀態
首先查看一下crontab的任務列表:
crontab -l
crontab 基本格式 :
* * * * * command
分 時 日 月 周 命令
第1列表示分鐘1~59 每分鐘用或者 /1表示
第2列表示小時1~23(0表示0點)
第3列表示日期1~31
第4列表示月份1~12
第5列標識號星期0~6(0表示星期天)
第6列要運行的命令
crontab文件的一些例子:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重啓apache。
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重啓apache。
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每週六、週日的1 : 10重啓apache。
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之間每隔30分鐘重啓apache。
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重啓apache。
* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小時重啓apache
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11點到早上7點之間,每隔一小時重啓apache
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4號與每週一到週三的11點重啓apache
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一號的4點重啓apache