毎週土曜日の午後11時に週間レポートを生成するスクリプトと、毎月1日に月間レポートを生成する別のスクリプトを実行したいと思います。
土曜日が毎月1日から3日以内に該当する場合は、毎週のレポートを実行したくありません。
月に一度です。
0 23 1 * * /home/me/monthly.sh
これは私が考えることができる週間項目に最も近いものです。
0 23 4-? * 6 /home/me/weekly.sh
疑問符を「月末3日前」という意味に変えることはできますか?それとも私の目的に合った他の方法はありますか?
月末になる前に数日を指定できることは、タスクスケジューラに必要な機能のように見えるため、crontabがこの機能を実行できない場合は少し驚きます。
私の選択肢は、Weekly.shで日付を確認し、最初の日から3日以内に停止することです。
答え1
0 23 * * 6 [ $(date +%e -d "next saturday") -gt 3 ] && /home/me/weekly.sh