メディアサーバのUbuntu 10.04 LTS@GT110bからUbuntu 14.04 LTS@ProLiant ML110 G7への移行作業。apache2やphp5のバージョンアップが心配の種だったのだが、
$ sudo apt-get install apache2 apache2-utils libapache2-mod-php5 php5 php5-cli mysql-server mysql-client php5-mysqlあたりを入れた後、設定方法が若干異なったくらいでepgrecやffmpeg 1.2.1も特に問題無く導入完了。
$ sudo apt-get install yasm zlib1g-dev libfaac-dev libx264-dev
$ sudo apt-get install dovecot-core postfix nkf
エンコードの確認もできたので、sensors関連ツールも再整備。
まずはcronな定期収集スクリプト/etc/cron.sh/sensors.cron。タイムスタンプとコア毎の温度を1行に出力するが、タイムスタンプはrsyslogと同じく「日付と時刻をTで繋ぐ」RFC3339形式で出力させる為、dateに"--rfc-3339=ns"を付与したのがポイント。
#!/bin/shそして/etc/cron.d/sensorsで、cronから1分周期で起動し、温度をロギングするよう設定。
LANG=C
LOGFILE=/var/log/sensors.log
TEMPERATURE=`/usr/bin/sensors | \
awk '/Core /{i=substr($2,1,length($2)-1);temp[i]=$3;};END{for(j=0;j<=i;j++){printf "\\\t%s", temp[j]}print}' | \
sed -e 's/\+//g'`
/bin/echo -e `date --rfc-3339=ns` ${TEMPERATURE} >> ${LOGFILE};
SHELL=/bin/sh続いて/etc/logrotate.d/sensorsでログファイルを月単位で分割し、12ヶ月分の履歴を保持する設定。
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
* * * * * root /etc/cron.sh/sensors.cron
"/var/log/sensors.log" {最後に、分析スクリプト~/bin/logsensor.sh。コア毎の温度を集計し、最低、平均、最高温度を算出する。
monthly
rotate 12
missingok
compress
}
#!/bin/bashで、こんな風にやれば
awk '
BEGIN {
min=999;max=0;sum=0;cnt=0;
}
{
for (i = 3; i <= NF; i++ ){
if($i < min){min=$i};
if(max < $i){max=$i};
sum += $i;
cnt++;
}
date=$1;
if(!length(start)){start=date;}
}
END {
printf "%s, %s, %f, %f, %f\n", start, date, min, sum/cnt, max;
}
' $*
$ logsensor.sh /var/log/sensors.logという具合にログ期間の最低、平均、最高温度を出力する。
2014-05-01, 2014-05-13, 29.750000, 39.770078, 59.500000
$ logsensor.sh /var/log/sensors.log.1 /var/log/sensors.log
2014-04-01, 2014-05-13, 25.750000, 38.719467, 59.500000
【参照】
●UbuntuによるEco Linuxサーバ構築記 http://eco.senritu.net/
┗PT3 >> ubuntu13.10+pt3+epgrecの環境構築
●Ubuntu Wiki https://wiki.ubuntu.com/
┣Releases
┣LucidLynx 10.04
┣NattyNarwhal 11.04
┣PrecisePangolin 12.04
┣RaringRingtail 13.04
┗TrustyTahr 14.04
●Wikipedia http://ja.wikipedia.org/wiki/
┣Ubuntu
┗OpenStack