1. 程式人生 > >關於linux定時任務與shell指令碼——實現遠端資料庫備份

關於linux定時任務與shell指令碼——實現遠端資料庫備份

一、常用的命令如下:

1、編輯一個新的crontab任務

    crontab -e

2、檢視編寫後的crontab任務

    crontab -l

3、重啟contab任務服務

    service crond restart

4、檢視contab任務狀態

    service crond status

5、重新載入配置

    service crond reload

6、關閉服務

    service crond stop

7、啟動服務

    service crond start

8、crontab時間格式

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed


二、使用命令實現一個數據庫定時備份任務:

1、編寫一個數據備份shell指令碼(儘量用vi daba_back.sh直接建立,若是在windows上建立後上傳到伺服器,可能會出現編碼不一致問題,解決辦法:http://chenzhou123520.iteye.com/blog/1832890)

vi daba_back.sh

指令碼內容如下(目的是從兩臺mysql資料庫伺服器上備份資料到本地):

這兩臺資料庫伺服器需要對備份伺服器授權

授權語句:

grant all privileges on *.* to [email protected]  identified by 'xxxxxxxxxxxxx' WITH GRANT OPTION ;

172.29.xx.xx為備份伺服器ip

root為備份伺服器訪問資料庫的使用者

xxxxxxxxxxxxx為備份伺服器訪問資料庫的密碼

指令碼如下:

#!/bin/bash
DATE=`date +%Y%m%d_%H%M%S`
BACKPATH1=/usr/local/backDatas/mysql_172.29.xx.xx/
mysqldump -h172.29.xx.xx -uroot -pxxxxxxxx xhs>${BACKPATH1}xhs_db1_${DATE}.sql
BACKPATH2=/usr/local/backDatas/mysql_172.29.xx.xx/
mysqldump -h172.29.xx.xx -uroot -pxxxxxxxx xhs>${BACKPATH2}xhs_db2_${DATE}.sql

2、設定crontab執行任務

crontab -e

編輯如下內容(每天晚上11:25開始備份資料到本地):

25 23 * * * /usr/local/backDatas/data_back.sh

編輯完後可以執行重啟crontab服務:

service crond restart