Cron
Cron 作業可能每 45 天執行一次?(約1個半月)
在閱讀了 crontab 文件後,我想不出一種方法來標註以下時間表:每 45 天執行一次腳本。
有誰知道優雅的解決方案?謝謝你。
因為 45 天的時間段不能很好地劃分為公曆的周、月或年,所以無法限制腳本執行的日期,並且仍然讓它在您想要的所有日子執行。
因此,您需要每天執行命令,並讓命令本身在每 45 天中的 44 天不做任何事情的情況下返回。
例如,如果您希望腳本在 03:17 執行,則命令可能如下所示:
17 3 * * * /usr/local/bin/your-script
在腳本中你可以這樣做:
#!/bin/bash if [[ $[($(date +%s)/86400)%45] != 0 ]] then return fi real things happen here
該
!= 0
元件可以使用不同的編號,具體取決於您希望它第一次執行的日期。您可以選擇將額外的邏輯放在 crontab 中而不是腳本中,儘管我個人認為在腳本中執行它更具可讀性。請注意,如果您的時區使用 DST,您可能需要調整上述內容,以避免在調整時鐘時將日程表偏移一天。確切的詳細資訊取決於您選擇執行腳本的時區和時間。