2016-05-18 21 views
0

我正在使用bash腳本中的Raspberry Pi,我想知道是否可以確定RPi重新啓動了多少次。關鍵是我的程序正在做某些事情,如果我重啓了3次,它就開始做其他事情了。確定我的Raspberry Pi重啓了多少次

我已經發現這個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

對不起,不清楚,但我想說的是,我希望我的變量在程序開始時爲空,並根據重新啓動次數增加。隨着我發現的程序,該命令已經給我一個結果。 – 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之後)。您的代碼將減去兩個相同的數字。 – Kenwa

+0

@ K.Wa:那是因爲我在編寫第一個版本,然後纔想到一個不會重新啓動的程序。 (這是你在編譯器休息時剔除這些答案而沒有真正考慮它們的原因;-))檢查更新後的答案。 – DevSolar

+0

再次感謝你。我是否必須創建.reboots,因爲它不存在於我的RPi上? – Kenwa