www.smiyasaka.com は、 2021 年 1月から CentOS Stream 8 にバージョンアップしました。 |
sensors を使用して CPU の温度だけを |
ただし、私のサーバ機でのデータ(下記の表示)から、温度だけを取り出すプログラムの例です。 coretemp-isa-0000
Adapter: ISA adapter
Core 0: +33.0°C (high = +80.0°C, crit = +100.0°C)
cpu_temp.sh の名前で作成しています。 #!/bin/bash
#=======================================
# lm_sensorsを使用して CPU の温度を抽出する。
# H25.03.28 CentOS 6.X用
# 直接起動した時とHTMLからした時、結果が違うので修正
#
sensors > DATA01.txt
#echo $SEARCH_DATA01 <----- 確認用
#
HDD_ondo1=$(grep -n "Core 0:" DATA01.txt)
# 半角スペース削除
HDD_ondo1=$(echo $HDD_ondo1 | sed -e "s/ //g")
# 文字列削除
#HDD_ondo2=$(echo $HDD_ondo1 | sed -e "s/(high=+80.0°C,//g")
# 文字列削除
#HDD_ondo2=$(echo $HDD_ondo2 | sed -e "s/crit=+100.0°C)//g")
# 文字列削除
HDD_ondo3=$(echo $HDD_ondo1 | sed -e "s/3:Core0://g")
# 文字列削除
HDD_ondo4=$(echo $HDD_ondo3 | sed -e "s/C//g")
# 文字列削除
HDD_ondo5=$(echo $HDD_ondo4 |\
sed -e "s/(high=+80.0,crit=+100.0)//g")
#echo "$HDD_ondo3"
echo "$HDD_ondo5"
#
# これをしないと、DATA01.txtのファイルが沢山作られます。
rm DATA01.txt
#
ホームヘージ上に SSI を使用して表示させる perl のプログラム例です。
#!/usr/bin/perl
#----------------------------------------------------------------
# cpu_temp.sh で
# sensorsを使用して CPU の温度を抽出する。
#----------------------------------------------------------------
#
$time_data = `/var/www/html/www.smiyasaka.com/cpu_temp.sh`;
#
print "<!-- cpu_temp_get.pl start -->\n";
print "<b>CPU 温度</b> </font><font color=\"red\"> \
<b>$time_data</b></font>";
print "<font color=\"blue\"><b>°C</b></font>\n";
print "<!-- cpu_temp_get.pl end -->\n";
exit(0);
#
****************************************
#!/usr/bin/perl
#----------------------------------------------------
# lm_sensorsを使用して CPU の温度を抽出する。
# 直接起動した時とHTMLからした時、結果が違うので修正
#----------------------------------------------------
use strict;
#----------------------------------------------------
# ドメインで dig コマンドを実行し、パイプで
# 結果を get_data に格納する
#
open( get_data, "sensors |");
#
while(<get_data>) {
# # 改行コードを削除
chomp;
# スペースで分割して配列に代入
my @Data = split(" ", $_ );
# print $Data[0],"=","\n";
# 先頭がドメインの行を抽出
if ( $Data[0] eq 'Core' ){
# Core0 の CPU 温度を抽出 +○○
my $temp = substr( $Data[2], 0,3 );
#
print "<!-- cpu_temp_get.pl start -->\n";
print "<b>CPU 温度</b> </font><font color=\"red\">\
<b>$temp</b></font>";
print "<font color=\"blue\"><b>°C</b></font>\n";
print "<!-- cpu_temp_get.pl end -->\n";
}
}
close(get_data);
exit(0);
**************************************** #!/usr/bin/perl
#----------------------------------------------------
# lm_sensorsを使用して CPU の温度を抽出する。
#----------------------------------------------------
# 先頭に Core の文字列がある行のみ抽出する
$Data1 = `/usr/bin/sensors | grep Core`;
# 複数 CPU の時には、一行毎分割する
@Data2 = split("\n",$Data1);
# 文字列を スペースで分割する
@Data = split(" ",$Data2[0]);
# 3番目の配列に温度データがある
$temp = substr( $Data[2], 0,3 );
# 温度データを HTML へ出力する
print "CPU 温度 $temp 度\n";
|