プリンタの印刷枚数カウント
http://extstrg.asabiya.net/pukiwiki/index.php?%A5%D7%A5%EA%A5%F3%A5%BF%A4%CE%B0%F5%BA%FE%CB%E7%BF%F4%A5%AB%A5%A6%A5%F3%A5%C8目次
概要 †
プリンタの印刷枚数をSNMPにて取得し、日毎の使用枚数をCSV形式で出力する。
動作環境 †
以下の環境にて動作試験済み。
環境 | バージョン | 備考 |
OS | CentOS 5.3 | |
SNMP | NetSNMP | OS付属 |
プリンタ | IPSiO SP C820/820M | RICOH系プリンタ |
コード †
#!/bin/sh # ------------------------ # Print Counter script # ------------------------ # Version : 1.0 # date : 2007/09/07 export LANG=C export PATH=/bin:/sbin:/usr/bin:/usr/sbin:$PATH ## Printer PRTNAME="prt-c810" COMMUNITY="hogehoge" ## SNMP oid MONO="enterprises.367.3.2.1.2.19.5.1.9.3" COLOR="enterprises.367.3.2.1.2.19.5.1.9.5" TOTAL="enterprises.367.3.2.1.2.19.1.0" ## LOG DATE=`date +%Y%m` OUTPATH=/home/system/data/IPSiO_C810/counter PUTFILE=$DATE".log" OUTPUT=$OUTPATH/$PUTFILE ## DATA TODAY=`date +%Y/%m/%d\ %a --date '1 days ago'` YDATE=`date +%Y%m --date '1 days ago'` YLINE=`wc -l $OUTPATH/$YDATE.log | awk '{print $1}'` YMONO=`sed -n -e $YLINE"p" $OUTPATH/$YDATE.log | awk 'BEGIN{FS=","}{print $2}'` YCOLOR=`sed -n -e $YLINE"p" $OUTPATH/$YDATE.log | awk 'BEGIN{FS=","}{print $3}'` YTOTAL=`sed -n -e $YLINE"p" $OUTPATH/$YDATE.log | awk 'BEGIN{FS=","}{print $4}'` snmpwalk -v1 -c $COMMUNITY $PRTNAME $TOTAL > /dev/null 2>&1 if [ $? = 1 ]; then MONOCOUNT=$YMONO COLORCOUNT=$YCOLOR TOTALCOUNT=$YTOTAL MONODIFF=$(($MONOCOUNT-$YMONO)) COLORDIFF=$(($COLORCOUNT-$YCOLOR)) else MONOCOUNT=`snmpwalk -v1 -c $COMMUNITY $PRTNAME $MONO | awk '{print $4}'` COLORCOUNT=`snmpwalk -v1 -c $COMMUNITY $PRTNAME $COLOR | awk '{print $4}'` TOTALCOUNT=`snmpwalk -v1 -c $COMMUNITY $PRTNAME $TOTAL | awk '{print $4}'` MONODIFF=$(($MONOCOUNT-$YMONO)) COLORDIFF=$(($COLORCOUNT-$YCOLOR)) fi ## OUTPUT test -f $OUTPUT || echo "DATE,MONO,COLOR,TOTAL" > $OUTPUT echo $TODAY","$MONOCOUNT","$COLORCOUNT","$TOTALCOUNT","$MONODIFF","$COLORDIFF >> $OUTPUT # EOF
Last-modified: 2009-12-15 (火) 11:13:06 (5245d)