2016-05-18 7 views
0

私はbashスクリプトのラズベリーパイに取り組んでいます。RPiが何回リブートしたかを知ることができたかどうかを知りたかったのです。ポイントは私のプログラムが何かをしていることです。私が3回再起動すると、何か他のことが始まります。私のラズベリーパイが何度リブートしたのかを確認する

私はすでにこれを見つけました。https://unix.stackexchange.com/questions/131888/is-there-a-way-to-tell-how-many-times-my-computer-has-rebooted-in-a-24-hour-peri ですが、問題は、簡単には変更できない番号が付けられていることです。

アイデア?

+0

Errrr ....「簡単に変更できない番号」?私はそこにあなたの意味を持っていません。あなたは再起動の回数を取得しますが、なぜそれを変更*したいのですか? (なぜあなたはできないと思いますか?)リンクされた答えがあなたにとってうまくいかない理由を明確にしてください。 – DevSolar

+0

申し訳ありませんが、明確ではありませんが、私が言いたいのは、プログラムの開始時に変数がnullになり、再起動の回数に応じて変数を増やしたいということです。私が見つけたプログラムでは、コマンドはすでに私に結果を与えてくれます。 – Kenwa

答えて

1

ご清聴ありがとうございます。

last reboot | grep ^reboot | wc -l 

これは、システムが再起動した回数です。あなたのプログラムは再起動時に "生き残る"ことができないので、あなたのプログラムが初めて実行されてから再起動回数がになることを前提とします。

if [[ ! -e ~/.reboots ]] 
then 
    echo $(last reboot | grep ^reboot | wc -l) > ~/.reboots 
fi 

INITIAL_REBOOTS=$(cat ~/.reboots) 

# Now you can check if the *current* number of reboots 
# is larger than the *initial* number by three or more: 

REBOOTS=$(last reboot | grep ^reboot | wc -l) 
if [[ $(expr $REBOOTS - $INITIAL_REBOOTS) -ge 3 ]] 
then 
    echo "Three or more reboots" 
else 
    echo "Less than three reboots" 
fi 

上記の場合、誰かにフィネスとエラーチェックのすべての種類(例えばを欠いた:だから、(最初と)以降の開始の再起動の回数に最初の頃を格納し、そして背中にそれを読んでもらいたいです~/.rebootsで改ざんされています)が、概念の証明としてのみ意味されます。

+0

ありがとうございます。私はそれをテストしましたが、再起動後に実行したときにはまだ0(73-73回再起動後74-74)が返されます。あなたのコードは、2つの同じ数字を引く。 – Kenwa

+0

@ K.Wa:それは再起動後も残っていないプログラムについて考える前に最初のバージョンを書いたからです。 (これはコンパイラの中断中にこれらの答えを抽出するために得られるものです。;-))更新された答えを確認してください。 – DevSolar

+0

もう一度ありがとうございます。 .rebootsは自分のRPi上に存在しないので作成する必要がありますか? – Kenwa

関連する問題