私のRaspberryPiには、次のように実行したいPythonスクリプトがあります。
- 平日午後4時30分から真夜中まで30分間隔で出発
- 週末は午前8時以降から深夜まで60分間隔で運行されます。
Cronを使用して毎日のスケジュールを取得する方法を知っています。
30 16 * * 1-5 /mnt/myHDD/myscript.py
しかし、X分ごとに実行する方法はわかりません。~までY時間。
30分ごとに走りたいのですが、これは正しいですか?ところで、16時30分から翌日02時まで毎時間実行するにはどうすればいいですか?
1-59/30 * * 1-5 /mnt/myHdd/myscript.py
編集:申し訳ありません。正確に30分ごとにする必要はありません。スクリプトは私の携帯電話からrpiで写真をダウンロードし、自宅で働いている間に頻繁に実行されることを望みます(例えば1630年以降)。 /1700 )、そして週末には一般「目覚めている時間」の毎時間。
答え1
私を見てください編集するこの答えの終わりに。
- この回答は、最初の要件に「近い」です。
*/30 16-23,0 * * 1-5
翻訳する:“At every 30th minute past every hour from 16 through 23 and 0 on every day-of-week from Monday through Friday.”
最初の答えは30分ごとに実行されないため、欠落しています。sleep
コードに以下を追加してこの問題を解決することもできます。
time.sleep( 1800 )
- この回答は、最初の要件に「近い」です。
0,*/30 16-23,0 * * 1-5
翻訳する:“At minute 0 and every 30th minute past every hour from 16 through 23 and 0 on every day-of-week from Monday through Friday.”
2番目の答えは、開始する30分前の16:00に実行されたため、欠落しています。それが重要でない場合、これはあなたが言うことに「近い」かもしれません。本当に重要で17:00まで待つことができる場合は、スケジュールを変更するだけで問題が解決します。
0,*/30 17-23,0 * * 1-5
- 2番目の要求に対する答えは次のとおりです。
0 8-23,0 * * 6-7
編集:精神障害があります。突然そのような人がいると思いました。精密あなたの質問に答えてください。
crontab
2つではなく3つの項目があります。
0,*/30 17-23,0 * * 1-5 /mnt/myHDD/myscript.py
30 16 * * 1-5 /mnt/myHDD/myscript.py
0 8-23,0 * * 6-7 /mnt/myHDD/myscript.py
答え2
2つのクローンジョブを設定します。
# Mon-Fri every "half hour" from 16:30 until 23:30 and also at 12:30am and 12:59am
30,59 0,16-23 * * 1-5 /mnt/myHDD/myscript.py
# Weekends, every hour from 8am until 11pm
0 8-23 * * 0,6 /mnt/myHDD/myscript.py
ここで最良の近似は、平日の作業で30分と59分を使用したため、16:00に実行されないことです。したがって、週あたりの作業間隔は29分と31分です。問題があれば別途それ2つを入力してください:
# Mon-Fri at 16:30
30 16 * * 1-5 /mnt/myHDD/myscript.py
# Mon-Fri every half hour from 17:00 until 23:30 and also at midnight and 12:30am
0,30 0,17-23 * * 1-5 /mnt/myHDD/myscript.py
分を他の最小時間と30過去、または30過去と59過去にハードコーディングしましたが、競合作業がある場合は、希望の間隔(5と35など)を選択できます。
月曜日から金曜日までの入場時間は真夜中で、午後12時30分です。0
時間フィールドを削除すると、最後の運行時間は午後11時30分です。繰り返しますが、これが問題の場合は、アイテムを分割して真夜中に実行するようにしてください。