#!/bin/csh -f # script to abstract sensors data to a time-stamped, host-specific # data file. This script is run EVERY MINUTE as a cron command by # /etc/cron.d/sensors # # last revision: 2001.12.26 (ajw) # write to the sensor data directory cd /home/weaver/sensor_data # get the correct hostname for file naming set HOSTNAME = `/bin/hostname` # create a temporary file of host-specific sensors data /usr/bin/sensors > sensors_${HOSTNAME}_tmp.dat # get the date /bin/date +%Y-%m-%d_%H:%M:%S > sensors_${HOSTNAME}_datestamp.dat grep "VCore 1" sensors_${HOSTNAME}_tmp.dat | awk '{print $3}' > \ sensors_${HOSTNAME}_VCore1.dat grep "VCore 2" sensors_${HOSTNAME}_tmp.dat | awk '{print $3}' > \ sensors_${HOSTNAME}_VCore2.dat grep "+3.3V" sensors_${HOSTNAME}_tmp.dat | awk '{print $2}' > \ sensors_${HOSTNAME}_+3.3V.dat grep "+5V" sensors_${HOSTNAME}_tmp.dat | awk '{print $2}' > \ sensors_${HOSTNAME}_+5V.dat grep "+12V" sensors_${HOSTNAME}_tmp.dat | awk '{print $2}' > \ sensors_${HOSTNAME}_+12V.dat grep "\-12V" sensors_${HOSTNAME}_tmp.dat | awk '{print $2}' > \ sensors_${HOSTNAME}_-12V.dat grep "\-5V" sensors_${HOSTNAME}_tmp.dat | awk '{print $2}' > \ sensors_${HOSTNAME}_-5V.dat grep "V5SB" sensors_${HOSTNAME}_tmp.dat | awk '{print $2}' > \ sensors_${HOSTNAME}_V5SB.dat grep "VBat" sensors_${HOSTNAME}_tmp.dat | awk '{print $2}' > \ sensors_${HOSTNAME}_VBat.dat grep "fan1" sensors_${HOSTNAME}_tmp.dat | awk '{print $2}' > \ sensors_${HOSTNAME}_fan1.dat grep "fan2" sensors_${HOSTNAME}_tmp.dat | awk '{print $2}' > \ sensors_${HOSTNAME}_fan2.dat grep "fan3" sensors_${HOSTNAME}_tmp.dat | awk '{print $2}' > \ sensors_${HOSTNAME}_fan3.dat grep "temp1" sensors_${HOSTNAME}_tmp.dat | awk '{print $2}' | \ sed 's/°C//g' > sensors_${HOSTNAME}_temp1.dat grep "temp2" sensors_${HOSTNAME}_tmp.dat | awk '{print $2}' | \ sed 's/°C//g' > sensors_${HOSTNAME}_temp2.dat grep "temp3" sensors_${HOSTNAME}_tmp.dat | awk '{print $2}' | \ sed 's/°C//g' > sensors_${HOSTNAME}_temp3.dat grep "vid" sensors_${HOSTNAME}_tmp.dat | awk '{print $2}' > \ sensors_${HOSTNAME}_vid.dat # write ALL sensors data as ONE LINE to a host-specific data file paste -d" " sensors_${HOSTNAME}_datestamp.dat sensors_${HOSTNAME}_VCore1.dat \ sensors_${HOSTNAME}_VCore2.dat sensors_${HOSTNAME}_+3.3V.dat \ sensors_${HOSTNAME}_+5V.dat sensors_${HOSTNAME}_+12V.dat \ sensors_${HOSTNAME}_-12V.dat sensors_${HOSTNAME}_-5V.dat \ sensors_${HOSTNAME}_V5SB.dat sensors_${HOSTNAME}_VBat.dat \ sensors_${HOSTNAME}_fan1.dat sensors_${HOSTNAME}_fan2.dat \ sensors_${HOSTNAME}_fan3.dat sensors_${HOSTNAME}_temp1.dat \ sensors_${HOSTNAME}_temp2.dat sensors_${HOSTNAME}_temp3.dat \ sensors_${HOSTNAME}_vid.dat >> sensors_${HOSTNAME}.dat # truncate file length to some useful monitoring period # for a monitoring interval of once every 5 minutes (12 measurements/hour) # e.g., 1 week = 12*24*7 = 2016 lines # e.g., 3 days = 12*24*3 = 864 lines set maxlen = 864 set len = `wc -l sensors_${HOSTNAME}.dat | awk '{print $1}'` set delta = `expr $len - $maxlen` if ( $delta > 0 ) then sed 1,${delta}d sensors_${HOSTNAME}.dat > sensors_${HOSTNAME}_sed.dat mv sensors_${HOSTNAME}_sed.dat sensors_${HOSTNAME}.dat endif # remove temporary files rm -f sensors_${HOSTNAME}_*.dat