現在の時刻を確認し、実行するはずの適切な時刻でない場合はスクリプトを中止する必要があります。また、他の誰かがそれを実行した場合、中止する必要があります。
例:午後10時から午前2時(4時間のウィンドウ)の間に開始された場合にのみ、スクリプトを実行する必要があります。
現在、私は以下を行っています。時間をかけdate +%k%M
てハードコードされた数値と比較する
#!/bin/sh
currTime=`date +%k%M`
check_time_to_run()
{
tempTime=$1
if [ $tempTime -gt 200 -a $tempTime -lt 2200 ]; then
echo "Time is between 2 AM and 10 PM. Aborting."
exit 1
else
echo "Time is after 10 PM and before 2 AM. Running normally."
fi
}
check_time_to_run $currentTime
sh
またはの時間比較に関して他に効率的な方法があるかどうか知りたいのですがbash
。
@エディいいえ、それは日付ではありません、それは私が比較する必要がある時間です。
—
2013
私は、数秒でそれが良くなると思います:
—
Eddy_Em
currTime=$(date +%s); lower=$(date +%s --date="2:00"); upper=$(date +%s --date="22:00"); if [$currTime -gt $lower -a $currTime -lt $upper]; then
…
スクリプトをcrontabに入れませんか?このようにして、特定の時間に実行されるようにします
—
BitsOfNix
どのユーザーもを使用してプロセスの時間を変更できるため、
—
jofel 2013
faketime
スクリプトは安全ではありません。ロックファイルを使用することはおそらくより良いオプションです。
date +%s
。次に例を示します。