每天学一点儿shell:Linux中crontab的用法
生活随笔
收集整理的這篇文章主要介紹了
每天学一点儿shell:Linux中crontab的用法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1、crontab命令說明
- 2、crontab命令
- 3、crontab注意事項
- 4、crontab使用實例
- 5、crontab其他案例
- 1、每天 02:00 執行任務
- 2、每天 5:00和17:00執行任務
- 3、每 10min 執行一次任務
- 4、在每周五、周日的17點執行任務
- 5、每隔2個小時`整點`執行一個任務
- 6、每個30秒執行一次任務
- 7、多個任務在一條命令中配置
1、crontab命令說明
在CenOS系統中輸入如下命令,查看crontab的配置
[root@hadoop-master ~]# cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root# 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從上面的例子可以看出,表達式一共有5位
- 第1位:代表分鐘,取值范圍是0-59
- 第2位:代表小時,取值范圍是0-23
- 第3位:代表日期,取值1-31
- 第4位:代表月份,取值1-12或者使用縮寫jan,feb,mar,apr …
- 第5位:代表星期,取值0-7,Sunday=0(第1天)或者sunday=7(最后1天),或者使用縮寫sun,mon,tue,wed,thu,fri,sat
比較特殊的特殊字符用法
| * | 代表所有的取值范圍內的數字,如分鐘為*代表從0-59的每一分鐘執行1次 |
| / | 代表每間隔一定時間的意思,如分鐘為*/10代表每隔10分鐘執行1次 |
| - | 代表從一個區間范圍,是一個閉區間,如“2-5”表示“2,3,4,5”,小時字段中0-23/2表示在0~23點范圍內每2個小時執行一次。 |
| , | 分散的數字(不一定連續),如小時為2,3,4代表2點3點4點的某個時間執行 |
2、crontab命令
命令格式:
crontab [-u user] file crontab [ -u user ] [ -i ] { -e | -l | -r }| -u user | 用于設定某個用戶的crontab服務 |
| file | file是命令文件名,表示將file作為crontab的任務列表文件并載入crontab |
| -e | 編輯用戶的crontab文件內容,如不指定用戶則默認當前用戶 |
| -i | 顯示某個用戶的crontab文件內容,如果不指定用戶則默認當前用戶 |
| -r | 從/var/spool/cron目錄中刪除某個用戶的crontab文件 |
| -i | 在刪除用戶的crontab文件時給確認提示 |
3、crontab注意事項
4、crontab使用實例
首先,編輯crontab定時任務文件
[root@hadoop-master crontab_test]# crontab -e添加自定義的執行命令,下面的命令是每小時的10分11分12分執行,并將日志輸出到日志文件中
10,11,12 * * * * sh /usr/local/test/crontab_test/crontab_demo.sh >> /usr/local/test/crontab_test/crontab.log 2>&1 &其中crontab_demo.sh內容如下:
[root@hadoop-master crontab_test]# cat crontab_demo.sh #!/bin/bash echo "這是一個crontab測試:"`date +"%Y-%m-%d %T"`上面的執行結果為:
[root@hadoop-master crontab_test]# tail -f crontab.log 這是一個crontab測試:2020-09-26 11:11:01 這是一個crontab測試:2020-09-26 11:12:015、crontab其他案例
1、每天 02:00 執行任務
0 2 * * * sh /usr/local/test/crontab_test/crontab_demo.sh2、每天 5:00和17:00執行任務
0 5,17 * * * sh /usr/local/test/crontab_test/crontab_demo.sh3、每 10min 執行一次任務
*/10 * * * * sh /usr/local/test/crontab_test/crontab_demo.sh4、在每周五、周日的17點執行任務
0 17 * * sun,fri sh /usr/local/test/crontab_test/crontab_demo.sh5、每隔2個小時整點執行一個任務
0 */2 * * * sh /usr/local/test/crontab_test/crontab_demo.sh6、每個30秒執行一次任務
* * * * * sh /usr/local/test/crontab_test/crontab_demo.sh * * * * * sleep 30; sh /usr/local/test/crontab_test/crontab_demo.sh7、多個任務在一條命令中配置
* * * * * /scripts/script.sh; /scripts/scrit2.sh一個測試crontab表達式在線地址:
https://www.matools.com/crontab
總結
以上是生活随笔為你收集整理的每天学一点儿shell:Linux中crontab的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 每天学一点儿shell:Linux三剑客
- 下一篇: 每天学一点儿shell:xargs 命令