あなたが知っている最も簡単な方法は何ですか?どんなツールを使っても
ベストアンサー1
スクリプトの先頭でどこかにフラグをタッチすると、スクリプトへの後続の呼び出しでフラグの存在と寿命を確認できます。
あなたの質問は多少曖昧です。まず、「最後にスクリプトを実行してから一定時間が経過した後にのみスクリプトを実行させる方法」を尋ねるとしましょう。
#!/bin/bash
flag="/var/tmp/$(basename -- $0).flag"
min_age=$(( 60 * 60 * 24 )) # 24 hours
if [ -e "$flag" ] ;then
(( $(date +%s) - $(date +%s -r "$flag") > min_age )) || exit 1
fi
touch "$flag"
# Proceed with your script
# ...
しかし、「真夜中以降にスクリプトが実行されていない場合にのみスクリプトを実行するにはどうすればよいですか?」と尋ねられます。
#!/bin/bash
flag="/var/tmp/$(basename -- $0).flag"
if [ -e "$flag" ] ;then
[ $(date +%F) = $(date +%F -r "$flag") ] && exit 1
fi
touch "$flag"
# Proceed with your script
# ...
-
「終了時にスクリプトを実行する方法」を尋ねると、ディストリビューションによって状況が大きく異なります。あなたはおそらくそれを調べたいと思うでしょう/etc/rc6.d
。たとえば、自分のシステムに/etc/rc.d/rc.local_shutdown
コンテンツを追加できます。使用しているディストリビューションに言及する必要があります。
それともこのスレッドをチェックしてください... 終了する前にコマンドを実行する