查看已存在的任務 查看crontab 輸入命令:cat /etc/crontab 在設定編輯之前都建議列出服務查看一下:crontab -l 語法: **** user_name command to be executed 前面五位是定時執行的時間周期 說明如下: 第一個 * 表示分鐘:取值範圍 ...
查看已存在的任務
查看crontab 輸入命令:cat /etc/crontab
在設定編輯之前都建議列出服務查看一下:crontab -l
語法:
**** user_name command to be executed
- 前面五位是定時執行的時間周期 說明如下:
第一個 * 表示分鐘:取值範圍 0-59
第二個 * 表示小時:取值範圍 0-23
第三個 * 表示天數:取值範圍 1-31
第四個 * 表示月份:取值範圍 1-12
第五個 * 表示每周:取值範圍 0-6
user_name
表示執行定時任務的用戶 不指定預設當前用戶command to be executed
表示要執行的腳本語句。- 組合用法
使用(-)可以劃定範圍,如:0 0-3 * * * 腳本 表示每天0-3點整執行腳本 使用(,)可以枚舉時間,如: 0,15,30,45 * * * * 腳本 表示每個小時的0分,15分,45分,30分會執行腳本 使用(/)可以指定間隔,如:* */8 * * * 腳本 表示每8小時執行腳本 組合用法,0-20/10 * * * * 腳本 表示在前20分鐘內每隔10分鐘執行腳本 本人的一個定時腳本語句,5 20 * * * /usr/local/bin/kubectl rollout restart deployment identity-deployment 每天20點5分重啟k3s服務
- 示例:
使用(-)可以劃定範圍:0 0-3 * * * 腳本 表示每天0-3點整執行腳本 使用(,)可以枚舉時間: 0,15,30,45 * * * * 腳本 表示每個小時的0分,15分,45分,30分會執行腳本 使用(/)可以指定間隔:* */8 * * * 腳本 表示每8小時執行腳本 組合用法:0-20/10 * * * * 腳本 表示在前20分鐘內每隔10分鐘執行腳本 每隔5秒執行一次:*/5 * * * * ? 每隔1分鐘執行一次:0 */1 * * * ? 每天23點執行一次:0 0 23 * * ? 每天凌晨1點執行一次:0 0 1 * * ? 每月1號凌晨1點執行一次:0 0 1 1 * ? 每月最後一天23點執行一次:0 0 23 L * ? 每周星期天凌晨1點實行一次:0 0 1 ? * L 在26分、29分、33分執行一次:0 26,29,33 * * * ? 每天的0點、13點、18點、21點都執行一次:0 0 0,13,18,21 * * ?
步驟:
方法一:
# touch crontab.txt # 將上面的cron job 複製到 crontab.txt 保存 # 讓crontab生效:crontab /xxx/crontab.txt # 重啟crond
方法二:
# 直接 crontab -e 編輯crontab # 按 i 進入編輯 # 將上面的cron job複製 # Esc 退出 # :wq 或 shift + zz # 重啟crond
常用命令:
crontab -u //設定特定用戶的定時服務 crontab -l //列出當前用戶定時服務內容 crontab -r //刪除當前用戶的定時服務 crontab -e //編輯當前用戶的定時服務 /sbin/service crond start //啟動服務 /sbin/service crond stop //關閉服務 /sbin/service crond restart //重啟服務 /sbin/service crond reload //重新載入配置 /sbin/service crond status //查看crond狀態 你也可以將這個服務在系統啟動的時候自動啟動: 在/etc/rc.d/rc.local這個腳本的末尾加上: /sbin/service crond start 查看cron執行日誌:cat /var/log/cron
- 如果最後帶^M 則需要設置一下編碼
vi crontab.txt
:set ff=unix
註意:
1.crontab.txt中的內容最後一行需要換行,因為crontab.txt中的內容是通過outputstream寫入的
2.java和linux系統級的區別
# Java的Quartz任務(有秒) 0 1 20 * * ? /usr/local/bin/kubectl rollout restart deployment basedata-deployment # linux系統的crontab(沒有秒) 1 20 * * * /usr/local/bin/kubectl rollout restart deployment basedata-deployment