メディアサーバの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
$ sudo apt-get install yasm zlib1g-dev libfaac-dev libx264-dev
$ sudo apt-get install dovecot-core postfix nkf
あたりを入れた後、設定方法が若干異なったくらいでepgrecやffmpeg 1.2.1も特に問題無く導入完了。
エンコードの確認もできたので、sensors関連ツールも再整備。
まずはcronな定期収集スクリプト/etc/cron.sh/sensors.cron。タイムスタンプとコア毎の温度を1行に出力するが、タイムスタンプはrsyslogと同じく「日付と時刻をTで繋ぐ」RFC3339形式で出力させる為、dateに**"–rfc-3339=ns"**を付与したのがポイント。
#!/bin/sh
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};
そして/etc/cron.d/sensorsで、cronから1分周期で起動し、温度をロギングするよう設定。
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
* * * * * root /etc/cron.sh/sensors.cron
続いて/etc/logrotate.d/sensorsでログファイルを月単位で分割し、12ヶ月分の履歴を保持する設定。
"/var/log/sensors.log" {
monthly
rotate 12
missingok
compress
}
最後に、分析スクリプト~/bin/logsensor.sh。コア毎の温度を集計し、最低、平均、最高温度を算出する。