1. Crontab介紹
crontab的語法規則格式:
代表意義 分鍾 小時 日期 月份 周 命令
數字范圍 0~59 0~23 1~31 1~12 0~7 需要執行的命令
周的數字為 0 或 7 時,都代表“星期天”的意思。
另外,還有一些輔助的字符,大概有下面這些:
特殊字符 代表意義
*(星號) 代表任何時刻都接受的意思。舉例來說,0 12 * * * command 日、月、周都是*,就代表着不論何月、何日的禮拜幾的12:00都執行后續命令的意思。
,(逗號) 代表分隔時段的意思。舉例來說,如果要執行的工作是3:00與6:00時,就會是:0 3,6 * * * command時間還是有五列,不過第二列是 3,6 ,代表3與6都適用
-(減號) 代表一段時間范圍內,舉例來說,8點到12點之間的每小時的20分都進行一項工作:20 8-12 * * * command仔細看到第二列變成8-12.代表 8,9,10,11,12 都適用的意思
/n(斜線) 那個n代表數字,即是每隔n單位間隔的意思,例如每五分鍾進行一次,則:*/5 * * * * command用*與/5來搭配,也可以寫成0-59/5,意思相同
1.每分鍾定時執行一次規則:
每1分鍾執行: */1 * * * *或者* * * * *
每5分鍾執行: */5 * * * *
2.每小時定時執行一次規則:
每小時執行: 0 * * * *或者0 */1 * * *
每天上午7點執行:0 7 * * *
每天上午7點10分執行:10 7 * * *
3.每天定時執行一次規則:
每天執行 0 0 * * *
4.每周定時執行一次規則:
每周執行 0 0 * * 0
5.每月定時執行一次規則:
每月執行 0 0 1 * *
6.每年定時執行一次規則:
每年執行 0 0 1 1 *
7.其他例子
5 * * * * 指定每小時的第5分鍾執行一次ls命令
30 5 * * * ls 指定每天的 5:30 執行ls命令
30 7 8 * * ls 指定每月8號的7:30分執行ls命令
30 5 8 6 * ls 指定每年的6月8日5:30執行ls命令
30 6 * * 0 ls 指定每星期日的6:30執行ls命令[注:0表示星期天,1表示星期1,以此類推,也可以用英文來表示,sun表示星期天,mon表示星期一等。]
30 3 10,20 * * ls 每月10號及20號的3:30執行ls命令[注:“,”用來連接多個不連續的時段]
25 8-11 * * * ls 每天8-11點的第25分鍾執行ls命令[注:“-”用來連接連續的時段]
*/15 * * * * ls 每15分鍾執行一次ls命令 [即每個小時的第0 15 30 45 60分鍾執行ls命令 ]
30 6 */10 * * ls 每個月中,每隔10天6:30執行一次ls命令[即每月的1、11、21、31日是的6:30執行一次ls命令。 ]
2. Supervisor任務
ics@bogon:sudo vim /etc/supervisor.conf.d/getToken [program:getToken] command=/usr/bin/python3 /opt/center-service/token/getToken.py directory=/opt/center-service/token autostart=true user=ics autorestart=true startretries=300 redirect_stderr=true stdout_logfile=/var/log/supervisor/get_token.log stdout_logfile_maxbytes=10MB stdout_logfile_backups=1 stopasgroup=true killasgroup=true priority=4
3. 使用Crontab定時啟動Supervisor任務
1. 新增調度任務的兩種方式:
1:在命令行輸入: crontab -e 然后添加相應的任務,wq存盤退出 '''
[root@linux-node1 ~]# crontab -e
*/1 * * * * echo "Hello World!"
2: 直接編輯/etc/crontab 文件'''
[root@linux-node1 ~]# vim /etc/crontab
*/1 * * * * root echo "test02"
2. 基本使用
-
-
啟動:sudo /etc/init.d/cron start ( service cron start )
-
重啟:sudo /etc/init.d/cron restart ( service cron restart )
-
關閉:sudo /etc/init.d/cron stop ( service cron stop )
-