分页: 1 / 1

怎么获取SENSORS的参数

发表于 : 2008-10-03 18:09
allarem
搞了一个下午了,正则还是很生疏……:em20


把每个参数都分离出来,去掉+ 和单位

代码: 全选

k8temp-pci-00c3
Adapter: PCI adapter
Core0 Temp:  +27.0°C                                    
Core0 Temp:  +26.0°C                                    
Core1 Temp:  +26.0°C                                    
Core1 Temp:  +28.0°C                                    

f71882fg-isa-0a00
Adapter: ISA adapter
3.3V:        +3.44 V
Vcore:       +1.26 V  (max =  +2.04 V)   
Vdimm:       +2.03 V
Vchip:       +1.90 V
+5V:         +5.00 V
12V:        +13.96 V
5VSB:        +4.66 V
3VSB:        +3.42 V
Battery:     +3.18 V
CPU:        3296 RPM
System:        0 RPM  ALARM
Power:         0 RPM  ALARM
Aux:           0 RPM  ALARM
CPU:         +44.0°C  (high = +70.0°C, hyst = +66.0°C)  
                      (crit = +70.0°C, hyst = +66.0°C)  sensor = transistor
System:      +40.0°C  (high = +85.0°C, hyst = +81.0°C)  
                      (crit = +100.0°C, hyst = +96.0°C)  sensor = transistor
先谢谢各位了

Re: 怎么获取SENSORS的参数

发表于 : 2008-10-03 18:27
allarem
:em09 贪心点,其实我是想把参数输出到SCREENLETS的OUTPUT中,SCREENLETS里的SYSMONITOR很不好看,而且我想要判断温度是否正常,不正常报警(通过\a)而且显示出来(正常绿色,不正常红色)
人比较笨,折腾了一下午琢磨出的脚本基本上达到了表格规范,就是不能分离参数……

代码: 全选

cputemp0=`sensors|grep Core0|awk  '{print $3}'`
fan=`sensors|grep CPU|awk '{print $2}'`
system=`sensors|grep System|awk '{print $2}'`

export cputemp0
export fan
export system

core0=`echo $cputemp0|awk '{print $0}'`
core1=`echo $cputemp0|awk '{print $1}'`
export core0
export  core1

echo 'CPU参数:'
echo '核心温度 外壳温度'

echo '主板参数:'
echo 'CPU风扇 CPU温度'

echo '机箱温度:'

Re: 怎么获取SENSORS的参数

发表于 : 2008-10-03 18:28
bones7456

Re: 怎么获取SENSORS的参数

发表于 : 2008-10-03 18:42
allarem
:em20
…………竟然没发现里面带的网址…………
:em06

Re: 怎么获取SENSORS的参数

发表于 : 2008-10-03 18:45
xiooli
说说你要哪些吧?还有要什么样的格式输出呢?

Re: 怎么获取SENSORS的参数

发表于 : 2008-10-05 13:48
allarem
xiooli 写了:说说你要哪些吧?还有要什么样的格式输出呢?
脚本输出数值到系统全局变量就好.例如cpu0t,cpu1t,这样的数值.
最好的就像我前面说的一样可以自动判断温度的正常与否.
= -||当然先要解决我的数值输出
(感叹下正则的非人类,作者真是猛.......)

Re: 怎么获取SENSORS的参数

发表于 : 2008-10-11 16:49
allarem
终于搞好了数据,但是还有个问题:怎么declare -i 了都没办法比较两个数字的大小?

代码: 全选

#!/bin/bash
#for output beta
#get data
cpu0_temp=`sensors|grep  'Core0'|awk '{print $3}'|sed  '1d'|sed 's/[+°C]//g'`
cpu1_temp=`sensors|grep  'Core1'|awk '{print $3}'|sed  '1d'|sed 's/[+°C]//g'`
fan_speed=`sensors|grep 'CPU:'|grep -v '+'|awk '{print $2}' `
system=` sensors|grep System|awk '{print $2}'|sed '1d'|sed 's/[+°C]//g'`
cpu0_state=OK
cpu1_state=OK
fan_state=OK
system_state=OK
declare -i safe=55
declare -i cpu0_temp cpu1_temp fan_speed system
if [ "$cpu0_temp" > "$safe" ];then 
cpu0_state="Dangerous!"
 fi
if [ "$cpu1_temp" > "$safe" ];then 
cpu1_state="Dangerous!" 
fi
if [ "$system" > "$safe" ];then 
system_state="Dangerous!"
fi
if [ "$fan_speed" == "0" ];then
fan_state="Dangerous!"
fi
#print them
echo 'CPU0温度:'$cpu0_temp'°C     '$cpu0_state
echo 'CPU1温度:'$cpu1_temp'°C     '$cpu1_state
echo 'CPU风扇:'$fan_speed' RPM    '$fan_state
echo '机箱温度:'$system'°C     '$system_state

Re: 怎么获取SENSORS的参数

发表于 : 2008-10-14 21:06
janky
请问怎样才能修改 Output 的程序源文件啊? 是/usr/share/screenlets/Output/ 下面的Outputscreenlets.pyc 还是 Outputscreenlet.py 文件啊?
我想将mlrc(歌词脚本)嵌入 Output 中,把这个Output变成一个漂亮的歌词输出端。
一开始我想直接更改Output的选项但是,每次更改后都是Output死掉,不知道什么原因。

Re: 怎么获取SENSORS的参数

发表于 : 2008-10-16 20:56
allarem
janky 写了:请问怎样才能修改 Output 的程序源文件啊? 是/usr/share/screenlets/Output/ 下面的Outputscreenlets.pyc 还是 Outputscreenlet.py 文件啊?
我想将mlrc(歌词脚本)嵌入 Output 中,把这个Output变成一个漂亮的歌词输出端。
一开始我想直接更改Output的选项但是,每次更改后都是Output死掉,不知道什么原因。
貌似不支持实时显示的东西……例如TOP