アイデア、誰ですか?月の第3週末に実行されないcronジョブをスケジュールする方法はありますか?
答えて
1週目、2週目、4週目(週に5回目)に実行してください。
# m h dom mon dow command
* * 1-20,28-31 * 0 echo #test
それが日常の実行、またはちょうど日曜日(0日目)に、それは27日に21日に実行されませんでしょう場合、私は考えている - 第3週。 3週目(またはそれが日曜日でない場合)に終了するスクリプトに小切手を入れるだけでも簡単です。あなたはそれが第三1以外の任意の可能な土曜日に実行したい場合は
これは実際には動作しません(少なくともvixie cronでは動作しません)。これにより、毎週日曜日に1-20,28-31、*、*日にスクリプトが実行されます。 domとdowが指定されると、いずれかの条件が成功するとスクリプトが実行されます。 –
私は訂正されますが、「日曜日ではないので、終了」というスクリプトのチェックで解決されます。それではまた、毎週日曜日にそれを走らせて、21日から27日の場合は出て行くでしょう。 –
(#3を試してみてください):
GREP=/usr/local/bin/grep
TODAY=/bin/date "+%d"
THIRD_SAT=/bin/date -v1d -v+1m -v-7d -v-sat "+%d"
#min hr day month weekday script
0 0 * * 6 ($THIRD_SAT | $GREP $TODAY) || /bin/echo doit
これは実際には動作しません(少なくともvixie cronではない)。これにより、毎週土曜日に1-13日、21-31日、*および*日にスクリプトが実行されます。日と月の曜日が指定されると、いずれかの条件が成功するとスクリプトが実行されます。 –
それを指摘してくれてありがとう。私は、最後の2つの列がANDedの代わりにORedされていることを認識していませんでした。毎日何か新しいことを学ぶ! –
- は、第三週末の一部 を無視して、必要なときに指定したスクリプトを実行するcronジョブを作成します
- 21で実行されるcronジョブを作成し、28でもう1つのcronジョブを作成して、スクリプトを別のno-opスクリプト用に戻して戻します。
ハックが、それは
保存を働くだろう、次の
#!/bin/bash
if [ $# != 3 ]
then
echo "Usage: $0 <yyyy> <mm> <dd>" 1>&2
exit 127
fi
YEAR=$1
MONTH=$2
DAY=$3
FIRST_WEEK_IN_MONTH=`date +%V -d $YEAR-$MONTH-01`
WEEK_FOR_DAY=`date +%V -d $YEAR-$MONTH-$DAY`
DIFF=$(($WEEK_FOR_DAY - $FIRST_WEEK_IN_MONTH))
if [ $DIFF = 2 ]
then
# this is the third week
exit 0
else
exit 1
fi
、その後は
12 00 * * 1,2,3,4,5 your_command
12 00 * * 6,7 test ! /usr/local/bin/is_third_week_in_month.sh `date "+%Y %m %d"` && your_command
をのcrontabに追加またはあなたがチェックするスクリプトを変更することができ/usr/local/bin/is_third_week_in_month.sh
として、あるいはいくつかの場所あなたがcrontabに1行しか持たないようにしたいのであれば、日付のために。
私のシステムでは、日付+%Vは1桁の週番号の先頭に0を表示します。 $ DIFFの計算では、それが8進値を持っていると思って失敗すると思います。このスクリプトを2009年02月19日に実行してみてください。 FIRST_WEEK_IN_MONTH = 'date +%V -d $ YEAR- $ MONTH-01 | sed s/^ 0 //' ---次の行に--- WEEK_FOR_DAY = 'date +%V -d $ YEAR- $ MONTH- $ DAY | sed s/^ 0 // ' –
また、Jan 1のISO週番号(%V)は52(たとえば2006)または53(たとえば2005) $ DIFF計算が負であり、1月に第3週を見つけることができません。だから、 "%V"を "%W"に変更する必要があります。 "%W"は週が0または1で始まり、52または53週目に終了します(%Vは52,53、または1で終了できます)。 –
- 1. 毎週実行するcronジョブをスケジュールする方法
- 2. 毎月第1週にSQLエージェントジョブをスケジュールする方法は?
- 3. 2週間おきにcronジョブをスケジュールする方法
- 4. 月15日と月末に実行されるクォーツcron
- 5. 毎月第1月曜日と第3月曜日の前日にAPSchedulerジョブを実行しています
- 6. SQLエージェントジョブ - 毎年1月の最初の2週間にジョブを実行するようにスケジュールする方法
- 7. シェルスクリプトヘルプcronジョブが実行されない
- 8. 週に2回、cronジョブを設定する方法(週2回)
- 9. Quartz Schedulerは月の第1月曜日と第3月曜日に実行されます
- 10. なぜこのcronジョブは毎分実行されますか?
- 11. スケジュールされたジョブを実行する
- 12. GoogleアプリケーションエンジンのCronジョブは週5日しかありません
- 13. cronジョブ/スケジュールされたタスクサービスは有効になっていますか?
- 14. Dockerコンテナ内でスケジュールされたcronジョブを実行するためのソリューション?
- 15. 毎週cronジョブ
- 16. Laravel5.2スケジュール:実行:実行は、私はPHPの職人スケジュールに問題を抱えているcronジョブ
- 17. ルートフォルダにないCronジョブが実行されていません
- 18. cronジョブをランダムに3〜6分実行できますか?
- 19. rsyncでcronジョブを実行すると、ジョブはスタックされますか?
- 20. Cronジョブを実行する
- 21. スケジュールされたSQLジョブが実行されていない
- 22. Symfony2のコマンドラインからCRONジョブが実行されない
- 23. ジョブを2週間ごとにスケジュールする方法crontab
- 24. quarz cron式を月曜日にn週間ごとに実行するには?
- 25. WP Cronジョブはすべてのページで実行されます
- 26. 毎月の第1、第2、第3、第4月曜日の取得方法は?
- 27. AWSのcron式CloudWatch:週に1回実行する方法
- 28. cronジョブの代わりにバックエンドスクリプトを実行できますか?
- 29. スケジュールされた時間を過ぎたジョブを実行しない方法
- 30. スケジュールされたcronジョブが動作しない
いつ実行しますか? – davidfg4
第3週末の一部ではない毎日を実行したいのですか、それとも3週目以外の週末ごとに実行しますか?月が月曜日に始まる場合、それは第1週末ですか? – Eddie