目次

概要

プリンタの印刷枚数をSNMPにて取得し、日毎の使用枚数をCSV形式で出力する。

動作環境

以下の環境にて動作試験済み。

環境バージョン備考
OSCentOS 5.3
SNMPNetSNMPOS付属
プリンタIPSiO SP C820/820MRICOH系プリンタ

コード

#!/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

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-12-15 (火) 11:13:06 (5189d)