如何使用cron任務每隔2天在固定時間執行任務
簡介
通過crontab 命令,我們可以在固定的間隔時間執行指定的系統指令或 shell script指令碼。本文將介紹crontab的一個特殊應用需求,如何通過crontab來每隔2天在固定時間執行任務。
crontab時間說明
# .---------------- 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
# | | | | |
# * * * * * command to be executed
minute:代表一小時內的第幾分,範圍 0-59。
hour:代表一天中的第幾小時,範圍 0-23。
mday:代表一個月中的第幾天,範圍 1-31。
month:代表一年中第幾個月,範圍 1-12。
wday:代表星期幾,範圍 0-7 (0及7都是星期天)。
who:要使用什麼身份執行該指令,當您使用 crontab -e 時,不必加此欄位。
command:所要執行的指令。
解決方案
根據上面對crontab時間格式的說明,比較直觀的解決方案是對日期整除2來實現此方案:
15 0 */2 * * insert_your_script_here.sh
上面的需求貌似解決了每隔2天在凌晨15分時執行固定的任務。但實際上有些月份有31天,導致本月31號和下月1號,都會執行此操作,並沒有真正實現每隔兩天週期來執行任務。
crontab並沒有提供這個需求的直接支援,但細思這個需求,結合crontab支援每天執行固定操作,需要做的就是跳過一天不進行操作,那麼是否可以通過記錄一個標誌來實現當前操作是否需要真正執行任務呢?答案是可以的,可以通過在/tmp目錄下標記檔案的方式來實現:
if [ -f /tmp/altday ];then
rm /tmp/altday
exit 0
else
touch /tmp/altday
insert_your_script_here.sh
fi
當然也可以記錄時間,來檢查是否經過了2天的週期,但沒有這種方案更直接。
相關文章
- ubuntu上使用cron執行定時任務計劃Ubuntu
- Golang——Cron 定時任務Golang
- 如何使用 cron 任務在 Linux 中計劃和自動化任務Linux
- 教你如何使用 cron 來安排任務
- 嗯,真香!使用 www-data 使用者執行定時任務(cron)
- openshift 新增cron定時任務
- laravel框架任務排程(定時執行任務)Laravel框架
- linux定時任務cron配置Linux
- 計劃任務(CRON)
- java 定時任務 quartz 時間表示式Cron總結Javaquartz
- PHP定時執行任務PHP
- Laravel Cron 定時任務 “跳坑” 點Laravel
- 排查linux 定時任務cron crontabLinux
- linux 如何建立定時任務?crontab -e 定時任務使用的時間是系統時間Linux
- Django配置celery執行非同步任務和定時任務Django非同步
- 在 Linux 中怎麼使用 cron 計劃任務Linux
- 如何在Linux中加入cron任務Linux
- spring執行定時任務Spring
- 如何使用WorkManager執行後臺任務(上)
- Springboot-之定時任務,啟動執行任務Spring Boot
- 使用at和cron實現任務計劃
- azkaban執行任務長時間無法結束
- Linux/UNIX 定時任務 cron 詳解Linux
- 使用 Cron4j 表示式 在 Solon 裡開發定時任務
- Django 如何使用 Celery 完成非同步任務或定時任務Django非同步
- 如何避免任務重複執行
- laravel建立定時任務並在windows下執行LaravelWindows
- 使用screen後臺執行任務
- CentOS7設定定時任務 每隔30分鐘執行一次命令CentOS
- php後臺定時執行任務PHP
- java web每天定時執行任務JavaWeb
- 如何用crontab每隔1分鐘執行一個命令列指令碼,shell設定時任務命令列指令碼
- 微任務和巨集任務哪個先執行
- 同步任務與非同步任務執行順序非同步
- 使用spring @Scheduled註解執行定時任務、Spring
- 任務執行順序
- 在 Linux 中安全且輕鬆地管理 Cron 定時任務Linux
- 修改自動收集統計資訊任務的執行時間