sleepコマンドは毎時間実行されます。

sleepコマンドは毎時間実行されます。

あなたの助けが必要です。 crontabで予約できないスクリプトがあります。しかし、私はsleepコマンドを使用しています。

sleepコマンドの使用に問題があります。

私のスクリプトは実行時に完了するのに10〜15分かかり、sleep(3600)を使用します。つまり、もう一時間寝るということです。

しかし、私の要件は、私のスクリプトが9時、10時...などで始まるということです。私のスクリプトの実行時間は10分(異なる)で、sleep(3600)コマンドの後、私のスクリプトの次の実行は10時ではなく10時10分に始まります。

誰もがスクリプトを毎時間実行するように変更する方法を教えてもらえますか?

ベストアンサー1

#!/bin/bash

function MY_CODE(){
    START_TIME_SECONDS=$(date +%s)
    <your code>
    END_TIME_SECONDS=$(date +%s)
    SCRIPT_RUN_TIME_IN_SECONDS=$((${END_TIME_SECONDS}-${START_TIME_SECONDS}))
    SLEEP_TIME=$((3600-${SCRIPT_RUN_TIME_IN_SECONDS}))
    sleep ${SLEEP_TIME}
}

MY_CODE()

おすすめ記事