毎月第1月曜日の8.30にcronからジョブを実行したいと思います。cronウィキペディアのページには
通常、ジョブは時刻/日付指定フィールドがすべて現在の日時と一致するときに実行されますが、例外が1つあります。「曜日」と「曜日」の両方が制限されている場合(「*」ではない)、次のいずれかです。「曜日」フィールド(3)または「曜日」フィールド(5)は、現在の日付と一致する必要があります。
(私の強調)
それは私がその月の最初の月曜日をすることができないことを意味します、私はその月の最初の(または何でも)日しかすることができませんか?私はそれを回避する方法を考えることができません。
条件を実際のcrontabコマンドに入れることができます(一般的な方法):
[ "$(date '+%u')" = "1" ] && echo "It's Monday"
ロケールがEN / USの場合、文字列を比較することもできます(最初の回答):
[ "$(date '+%a')" = "Mon" ] && echo "It's Monday"
これで、この条件が月の最初の7日間のいずれかに当てはまる場合、最初の月曜日になります。crontabでは、パーセント構文をエスケープする必要があることに注意してください(一般的な方法)。
0 12 1-7 * * [ "$(date '+\%u')" = "1" ] && echo "It's Monday"
ロケールがEN / USの場合、文字列を比較することもできます(最初の回答):
0 12 1-7 * * [ "$(date '+\%a')" = "Mon" ] && echo "It's Monday"
echo
コマンドを、実行する実際のコマンドに置き換えます。私も同様のアプローチを見つけました。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加