linux 每天自動備份mysql

這個裏的自動備份是在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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章