在 Windows 環境創建定時任務大家都很清楚、很簡單。接下來來這篇文章就針對 Linux 環境講述創建定時任務。
環境:CentOS 8 、cronie 1.5.2
一、crontab 使用
cron是一個linux下 的定時執行工具,
命令 | 用途 |
---|---|
service crond start | 啟動服務 |
service crond stop | 關閉服務 |
service crond restart | 重啟服務 |
service crond reload | 重新載入配置 |
service crond status | 查看服務狀態 |
參數 | 說明 |
---|---|
-u | 定義用戶 - 只有 root 才有權限執行這個任務,也就是幫其他使用者創建/移除 crontab 定時任務 |
-e | 編輯用戶的crontab |
-l | 列出用戶的crontab |
-r | 刪除用戶的crontab - 移除所有 crontab 的內容,若僅要移除某一項,請用 -e 編輯 |
-i | 刪除前的-i提示 |
-n | 設置集群主機運行用戶的crontab |
-c | 讓主機在集群中運行用戶的crontab |
-s | selinux上下文 |
-V | 打印版本並退出 |
-x | 啟用調試 |
二、格式
在crontab文件中如何輸入需要執行的命令和時間。該文件中每行都包括六個域,其中前五個域是指定命令被執行的時間,最后一個域是要被執行的命令。
每個域之間使用空格或者制表符分隔。
分鍾 | 小時 | 日期 | 月份 | 周 | 命令 | ||
---|---|---|---|---|---|---|---|
范圍 | 0-59 | 0-23 | 1-31 | 1-12 | 0-7 | echo "hello" >> abc.log |
三、字符含義
符號 | 說明 |
---|---|
* (星號) |
代表任何時刻都接受 |
, (逗號) |
代表分隔時段的意思 |
- (減號) |
代表一段時間范圍內 |
/n (斜線) |
那個 n 代表數字,每隔 n 單位間隔 |
四、創建簡單任務
每分鍾輸出一次當前的時間,輸出到用戶家目錄下的 time.log 文件中。
# crontab -e * * * * * echo `date` >> /home/xxx/time.log
五、配置系統級別的定時任務
crontab -e 是用來設置用戶級別的定時任務的。
配置系統級別的任務直接使用 root 權限編輯系統級別定時任務的配置文件: /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 # m h dom mon dow user command 17 * * * * root cd / && run-parts --report /etc/cron.hourly
六、實例
實例1:每1分鍾執行一次myCommand
* * * * * myCommand
實例2:每小時的第3和第15分鍾執行
3,15 * * * * myCommand
實例3:在上午8點到11點的第3和第15分鍾執行
3,15 8-11 * * * myCommand
實例4:每隔兩天的上午8點到11點的第3和第15分鍾執行
3,15 8-11 */2 * * myCommand
實例5:每周一上午8點到11點的第3和第15分鍾執行
3,15 8-11 * * 1 myCommand
實例6:每晚的21:30重啟smb
30 21 * * * /etc/init.d/smb restart
實例7:每月1、10、22日的4 : 45重啟smb
45 4 1,10,22 * * /etc/init.d/smb restart
實例8:每周六、周日的1 : 10重啟smb
10 1 * * 6,0 /etc/init.d/smb restart
實例9:每天18 : 00至23 : 00之間每隔30分鍾重啟smb
0,30 18-23 * * * /etc/init.d/smb restart
實例10:每星期六的晚上11 : 00 pm重啟smb
0 23 * * 6 /etc/init.d/smb restart
實例11:每一小時重啟smb
* */1 * * * /etc/init.d/smb restart
實例12:晚上11點到早上7點之間,每隔一小時重啟smb
* * 23-7/1 * * * /etc/init.d/smb restart
刪除定時任務
輸入crontab -e 打開crontab執行命令
之后輸入進行編輯,直接刪除需要刪除的定時任務指令之后完成保存即可。
本文為轉載,感謝原作者分享。
原文地址:https://blog.dwtowen.com/archives/202/