20 Mayıs 2009

Sistem sıcaklık bildirimi

Sistemlerin belli bir sıcaklığı geçtiğinde e-posta ile bildirim yapabilmesi için mbmon'dan yararlandım. Önce mbmon'un çeşitli kullanım parametrelerini görelim:

Default 5 saniyede bir çıktı verir. (Sistem 28 derece. Fan hızı 3000)
# mbmon -A

Temp.= 254.0, 28.0, 201.0; Rot.= 3000,    0,    0
Vcore = 1.18, 1.82; Volt. = 3.41, 6.85, 11.67,  -0.00, -1.69

Temp.= 254.0, 28.0, 201.0; Rot.= 3000,    0,    0
Vcore = 1.18, 1.82; Volt. = 3.41, 6.85, 11.67,  -0.00, -1.69
...
...

30 saniyede bir çıktı verir.
# mbmon 30 -A

Temp.= 254.0, 28.0, 201.0; Rot.= 3013,    0,    0
Vcore = 1.18, 1.82; Volt. = 3.41, 6.85, 11.67,  -0.00, -1.69
...
...

Sadece tek bir çıktı verir.
# mbmon -A  -c 1

Temp.= 254.0, 28.0, 201.0; Rot.= 2986,    0,    0
Vcore = 1.18, 1.82; Volt. = 3.41, 6.85, 11.67,  -0.00, -1.69

Çıktının formatı aşağıdaki gibi farklı olması için -r parametresi kullanılır.
# mbmon -A -r
TEMP0 : 254.0
TEMP1 : 28.0
TEMP2 : 201.0
FAN0  : 3000
FAN1  :    0
FAN2  :    0
VC0   :  +1.18
VC1   :  +1.82
V33   :  +3.41
V50P  :  +6.85
V12P  : +11.67
V12N  :  -0.00
V50N  :  -1.69

Sadece TEMP1 değerini almak için -T parametresi kullanılır:
# mbmon -A -c 1 -T 2
28.0

Sadece FAN0 değerini almak için -F parametresi kullanılır:
# mbmon -A -c 1 -F 1
3000

Diğer kullanım parametreleri ve ayrıntı için tabi ki:
# mbmon -h
MotherBoard Monitor, ver. 2.05 by YRS.
Usage: mbmon [options...] <seconds for sleep> (default 5 sec)
 options:
  -V|S|I: access method (using "VIA686 HWM directly"|"SMBus"|"ISA I/O port")
  -A: for probing all methods, all chips, and setting an extra sensor.
  -d/D: debug mode (any other options except (V|S|I) will be ignored)
  -e [0-2]: set extra temperature sensor to temp.[0|1|2] (need -A).
  -p chip: chip=winbond|wl784|via686|it87|gl52|lm85|lm80|lm90|lm75
            for probing chips
  -Y: for Tyan Tiger MP/MPX motherboard
  -h: print help message(this) and exit
  -f: temperature in Fahrenheit
  -c count: repeat <count> times and exit
  -P port: run in daemon mode, using given port for clients
  -T|F [1-7]: print Temperature|Fanspeed according to following styles
    style1: data1\n
    style2: data2\n
    style3: data3\n
    style4: data1\ndata2\n
    style5: data1\ndata3\n
    style6: data2\ndata3\n
    style7: data1\ndata2\ndata3\n
  -r: print TAG and Value format
  -u: print system uptime
  -t: print present time
  -n|N: print hostname(long|short style)
  -i: print integers in the summary(with -T option)

Şimdi bu bilgiler ışığında yazdığım aşağıdaki gibi bir script belirli zaman aralıklarında çalıştırılırsa, sistem ısındığında e-posta ile bize bildirim yapacaktır.

#!/bin/bash

# mbmon -c 1 : 1 kere cikti almak icin
#       -T 2 : sicakligin sadece 2. degeri almak icin
# Cikti tamsayi olmadigi icin awk ile noktadan
# onceki deger alinir.

#Sicaklik derecesine gore bildirim.
#DEGER=`mbmon -A -c 1 -T 2|awk -F. '{print $1}'`

# Fan hizina gore bildirim
DEGER=`mbmon -A -c 1 -F 1`

if [ $DEGER -gt 3850 ]
then
        echo "Sistem odasinda sicaklik artisi tespit edildi" | mail -s "Sicaklik YUKSEK" bilgiislem@abckurumu.com.tr
fi

exit

Hiç yorum yok: