シェルスクリプトでミニオンを識別するのに役立ちますか? 10分ごとに実行され、シェルスクリプトを実行するcronがありますが、このスクリプトを毎時間実行したくありません。そのため、最小値を確認してスクリプトの実行をスキップしようとしました。
答え1
一般に、スケジュールの決定は、cron やスケジュール以外のプロセスに任せるのが最善です。
cronを使用してスクリプトまたはコードを10分ごとに実行するようにスケジュールすると、その時点で実行されるのを防ぎます。
10,20,30,40,50 * * * * my-command-here
あなたのものを手に入れようとするよりも優れています。スクリプト実行時に検出します。影響しません手動使用あなたのスクリプト。
cronの実装に応じて、次のことができます。可能使用
10-50/10 * * * * my-command-here
10:00から50:00まで10分ごとにタスクを実行します(つまり、全体の時間をスキップします)。
それとも
10/10 * * * * my-command-here
つまり、毎時10時から毎時59時まで10分間隔でバスが運行されます。
最後の2つの例の構文がシステムで機能していることをテストする必要があります。マニュアルcrontab(5)
(man 5 crontab
)を読むことをお勧めします。
答え2
あなたの質問に答えるために、次のbash
スクリプトは「最小時間」をスキップしますが、コサロナンダの答えより効率的 - これはより良い答えです。
#!/usr/bin/env bash
nowminute=$(date +%M)
topofhr="00"
if [ $nowminute == $topofhr ]; then exit 0; fi
...
balance of your script
date +%M
得る分現在の値から始めて、date
比較して「最小時間」(00分)であることを確認します。