アイデア、誰ですか?月の第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. 週に2回、cronジョブを設定する方法(週2回)
- 3. スケジュールされたジョブを実行する
- 4. 毎週cronジョブ
- 5. cronジョブ/スケジュールされたタスクサービスは有効になっていますか?
- 6. Laravel5.2スケジュール:実行:実行は、私はPHPの職人スケジュールに問題を抱えているcronジョブ
- 7. cronジョブをランダムに3〜6分実行できますか?
- 8. Cronジョブを実行する
- 9. Symfony2のコマンドラインからCRONジョブが実行されない
- 10. M2E CronジョブがMagentoで自動的に実行されない
- 11. ローカルホストウィンドウでcronジョブをスケジュールする
- 12. コマンドラインでsshでcronジョブをスケジュールする
- 13. Apache Aurora cronジョブがスケジュールされていません
- 14. 毎週日曜日にcrontabジョブを実行する方法
- 15. 他のcronジョブが終了したらcronジョブを実行するには?
- 16. cronジョブは、私は5分ごとに実行するcronジョブを持って
- 17. SQL Serverジョブはスケジュールされた実行を既に実行している場合はスキップしますか?
- 18. Node.jsのCronジョブを実行する方法
- 19. cronジョブを使用してPHPファイルを実行する方法
- 20. 隔週のジョブをスケジュールするにはどうしたらいいですか?
- 21. cronなしでAWSでスケジュールされたタスクを実行
- 22. 正確な時間にdjango-cronジョブを実行するには
- 23. Magento cronジョブがAWSインスタンスで実行されていません
- 24. SQLクエリを毎日実行するようにジョブをスケジュールする方法は?
- 25. 時間単位で実行されないときはいつでも、毎時cronジョブを実行します。
- 26. cronジョブによって実行されるスクリプトの相対パス
- 27. ASP.NET MVC Webアプリケーションを使用してAzureでジョブを実行するようにスケジュールする推奨される方法はありますか?
- 28. あまりにも長く実行されるcronのジョブベッドMySqlクエリにロールバックを発行する方法
- 29. クロン式のcronは、午後3時毎週にトリガ実行し、2012年4月25日
- 30. cronジョブは:/他の条件は、シェルスクリプトはcronジョブから実行された場合、期待通りに動作しない場合
いつ実行しますか? – davidfg4
第3週末の一部ではない毎日を実行したいのですか、それとも3週目以外の週末ごとに実行しますか?月が月曜日に始まる場合、それは第1週末ですか? – Eddie