linux 系統是由 cron (crond) 系統服務來控制的。Linux 系統上面原本就有非常多的計劃性工作,是以這個系統服務是預設啟動的。
由于使用者自己也可以設定計劃任務,是以, Linux 系統也提供了使用者控制計劃任務的指令 :crontab 指令。
1、編寫shell腳本
/home/mysql_bak/new_mysql_biz_bak.sh
#!/bin/bash
source /etc/profile
source /root/.bash_profile
#定義變量參數
backday=`date +%Y%m%d`
rm -rf /home/mysql_bak/biz_data_file/$backday
rm -rf /home/mysql_bak/biz_data_file/*.tar.gz
mkdir /home/mysql_bak/biz_data_file/$backday
backdir=/home/mysql_bak/biz_data_file/$backday"/"
# 備份資料庫資訊
mysqldump -uroot -ppass@word -h 10.53.314.50 chain > $backdir"chain.sql"
# 保留15天内的資料備份
find /home/mysql_bak/biz_data_file/ -mtime +5 -name '*20*' -exec rm -rf {} \;
# 打包
cd /home/mysql_bak/biz_data_file
# 打包
cd /home/mysql_bak/biz_data_file
tar zcvf daas_$backday".tar.gz" $backday
# 上傳hdfs
hdfs dfs -rm /mysql_bak/biz_data_file/daas_$backday".tar.gz"
hdfs dfs -put /home/mysql_bak/biz_data_file/daas_$backday".tar.gz" /mysql_bak/biz_data_file/
exit 1;
2、檢視定時任務:
crontab -l
3、添加定時任務
crontab -e (點選回車後會彈出一個編輯界面,添加腳本進去,會自動檢查,無需重新開機cron服務)
例如:crontab -e 10 2 * * * /bin/bash /home/mysql_bak/new_mysql_biz_bak.sh
格式如下:
minute hour day-of-month month-of-year day-of-week commands
合法值為:00-59 00-23 01-31 01-12 0-6 (0 is sunday)
除了數字還有幾個特殊的符号:"*"、"/"和"-"、","
"*"代表所有的取值範圍内的數字
"/"代表每的意思,"/5"表示每5個機關
"-"代表從某個數字到某個數字
","分開幾個離散的數字
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiMGc902byZ2PjBTM2kzN0IGOjNWZlljM5MjM4QzYmVTOiZjZxUTO4U2LcBza5QTcsJja2FXLp1ibj1ycvR3Lc5Wanlmcv9CXt92YucWbp9WYpRXdvRnL5A3Lc9CX6MHc0RHaiojIsJye.jpg)