如何比较cpu序列是否正确

问题描述 投票:1回答:1

我有个问题。我想检查linux系统何时启动或串口cpu是否正确。如果没有,他将重新启动。所以他会一直在做重启循环。我找到了检查serial cpu命令的命令:

cat /proc/cpuinfo | grep Serial | cut -d ' ' -f 2

如何将此命令的结果与例如000000ddd0d0d的值进行比较?而且我不知道如何看待这样的检查脚本以及将它放在Ubuntu系统中的位置(/etc/init.d/rc.local ??)。

这是正确的??:

#!/bin/bash
STR=cat /proc/cpuinfo | grep Serial | cut -d ' ' -f 2
if $STR != '000000ddd0d0d'; then
reboot

谢谢你的帮助抱歉我的英语。

bash ubuntu sh
1个回答
0
投票

你可能应该在一个grep命令中完成整个事情:

grep -q '^Serial.*000000ddd0d0d' /proc/cpuinfo || reboot

这将重新启动,除非在Serial中找到包含000000ddd0d0d/etc/cpuinfo的行。

但由于几个原因,这是值得怀疑的。

  1. 在这种情况下,重新启动应该有什么好处?由于这应该在机器启动期间完成,然后您将进入无限循环的重新启动,只能通过关闭计算机来停止。这太可怕了!您可能从未遇到过这样的问题(如管理员),或者您不会自愿生成它。修复此类系统的唯一方法是通过其他介质(USB拇指驱动器或类似设备)启动它。
  2. 并非所有Linux发行版或内核版本都在/proc/cpuinfo中提供CPU序列号。例如,我当前的系统没有。所以在我的电脑上这根本不起作用。
  3. 对CPU序列号作出反应的整个想法是非常值得怀疑的,因为CPU可能会中断(不太可能但可能),然后可能会被替换,新CPU虽然肯定有不同的序列号,但不应该造成任何麻烦。

所以,我认为you might want to reconsider

© www.soinside.com 2019 - 2024. All rights reserved.