關於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