2013-07-23 25 views
0

我的笔记本电脑经常被加热到60-75摄氏度左右的高温。我已经安装了lm_sensors。而且我发现了很少的命令来做到这一点。我需要生成一个文件,每隔1分钟测量一次以下参数。如何通过Shell将温度和相应时间存储到文件中?

  1. 温度的测量值。它可以通过命令sensors >> temperature.txt
  2. 测量温度的时间。它可以通过date >> temperature.txt
  3. 当前正在运行的进程的数量ps-aux(但这不会给号码进程)。

我开始知道这是一个要完成的任务shell scripts(是吗?)。任何人都可以建议我这样做,因为我对shell脚本知之甚少。

回答

1

脚本本身可能是这样的:

#!/bin/bash 

file=/your_home_dir/temp_info 
temperature=$(sensors | tail -3) 
when=$(date "+%Y%m%d_%H%M%S") 
working_proc=$(ps -aux | wc -l) 

echo "$when num_proc: $working_proc" >> $file 
echo "$temperature" >> $file 

具有输出像

20130724_131150 num_proc: XXX 
temp line1 
temp line2 
20130724_131250 num_proc: YYY 
temp line1 
temp line2 
... 

把它计算出每1分钟,你可以使用crontab

待办事项crontab -e并添加以下行:

* * * * * /bin/sh /path/to/script.sh 2>/dev/null 

您可以在https://stackoverflow.com/tags/crontab/info中查看更多关于crontab的信息。基本思路:

  • 有了这个表达* * * * *crontab每分钟运行时,任何一天,任何时间。
  • 使用2>/dev/null我们避免了假想的错误消息出现在控制台中。他们“有针对性”到/dev/null,所以他们不会出现。点子:做ls -l /hellooooo,你会得到一个错误信息。做ls -l /helloooo 2>/dev/null,你不会。
+0

但是由'sensors'给出的温度信息是很长的。但我只需要''文件'中的'sensors'输出的最后两行。任何方式来做到这一点? – noufal

+0

@noufal,你可以发表一个'sensors'输出的例子吗?我想'温度= $(传感器|尾巴-2)'可能会做到,但只是为了确保。 – fedorqui

+0

请看看..http://tinypic.com/r/20av288/5 – noufal

相关问题