我想编写一个bash脚本,将当前CPU利用率写入文件“logfile”。我使用英特尔®酷睿™i7-4500U CPU @ 1.80GHz×4和Ubuntu 15.10。Bash脚本:将CPU利用率写入文件(Ubuntu)
我已经在这个论坛上看到过类似的问题,但并不是所有的问题都被回答为100%。通过我的研究,我想出了两种实现我的目标的可能方式。第一个是
mpstat | grep "all" | awk '{ print $3 + $5; }' >> logfile
(添加用户CPU和系统CPU)和我的第二候选是
mpstat | grep "all" | awk '{ print 100 - $12; }' >> logfile
(100 - %空闲的CPU)。如果我对CPU的总利用率感兴趣(因此应该包括以某种形式计算为CPU的所有组件),那么这两者中哪一个对我来说是正确的。
另一个问题:通过什么我已经通过阅读其他线程了解到,我想我的第二个候选
mpstat | grep "all" | awk '{ print 100 - $12; }' >> logfile
应该是相当准确的。但是,当我打开“系统监视器”并监视“CPU历史记录”时,我观察到显着不同的CPU利用率。另一件事是系统监视器中的值非常动态(CPU在4%和18%之间变化),而在同一时期,第二个命令的结果几乎保持不变。有人有解释吗?
非常感谢所有评论!
您是否看到系统监视器的利用率显着高于此脚本**在同一时间**返回的数量?或者可能是额外的CPU使用率仅仅是系统监视器使用更多的CPU来生成GUI并绘制使用图? –
是的,我打开了系统监视器,在执行此操作时,我几次将第二个命令打入终端。我刚刚观察到,这些值也可以(显着)较低。另一件事是系统监视器中的值非常动态(CPU在4%和18%之间变化),而在同一时期,第二个命令的结果几乎保持不变 - 我在帖子中编辑了这个值。 – BJPrim
我建议安装[GNU会计实用程序](https://apps.ubuntu.com/cat/applications/precise/acct/)。 –