シェルスクリプトで最小時間を識別する方法

シェルスクリプトで最小時間を識別する方法

シェルスクリプトでミニオンを識別するのに役立ちますか? 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分)であることを確認します。

関連情報