【问题标题】:Determine how many times my Raspberry Pi has rebooted确定我的 Raspberry Pi 重启了多少次
【发布时间】:2016-05-18 09:11:23
【问题描述】:

我正在使用 bash 脚本编写 Raspberry Pi,我想知道是否可以确定 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 但问题是它给了我一个不容易修改的数字。

有什么想法吗?

【问题讨论】:

  • Errrr....“不能轻易修改的数字”?我不明白你的意思。你得到了重启的次数,你为什么要修改呢? (为什么你认为你不能?)请澄清为什么链接的答案对你不起作用。
  • 对不起,不清楚,但我想说的是,我希望我的变量在程序开始时为空,并根据重启次数增加。使用我找到的程序,该命令已经给了我一个结果。

标签: bash reboot raspberry-pi3


【解决方案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(73-73 然后在重新启动后 74-74)。您的代码减去两个相同的数字。
  • @K.Wa:那是因为我在考虑一个程序在重新启动后无法幸存之前编写了第一个版本。 (这就是你在编译器中断期间没有真正考虑这些答案而得到的结果。;-))检查更新的答案。
  • 再次感谢您。我是否必须创建 .reboots 因为它在我的 RPi 上不存在?
  • @K.Wa:如果你再看一遍,脚本的第一部分会创建文件来存储初始重启次数。如果您手动创建该文件,您就无法实现该目的。相反,您必须删除文件来重置重启次数。
  • 这是我的想法,但是当我运行它时,我有一个错误告诉我:没有这样的文件或目录
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-10
  • 2021-05-08
  • 1970-01-01
相关资源
最近更新 更多