С помощью bash скрипта на Debian можно собрать показания пробега принтеров и послать их по email, например в CRM

  • Скрипт в /data/sh/snmp

Ставим:

apt-get install sendemail
apt-get install libio-socket-ssl-perl libnet-ssleay-perl

Создаем скрипт:

sendemail.sh

#!/bin/bash
# Будет отображаться "От кого"
FROM=от@кого.ру
# Кому
MAILTO=$3
# Тема письма
NAME=$1
# Тело письма
BODY=$2
# В моем примере я отправляю письма через существующий почтовый ящик на gmail.com
# Скрипт легко адаптируется для любых почтовых серверов
SMTPSERVER=smtp.mail.ru
# Логин и пароль от учетной записи
SMTPLOGIN=от@кого.ру
SMTPPASS=пароль

# Отправляем письмо
/usr/bin/sendEmail -f $FROM -t $MAILTO -o message-charset=utf-8  -u $NAME -m $BODY -s $SMTPSERVER -o tls=yes -xu $SMTPLOGIN -xp $SMTPPASS

Делаем исполняемым

chmod +x sendemail.sh

Проверяем

./sendemail.sh Тест Проверка! куда@посылаем.ру

crontab -e

15 9 1,15 * * bash /data/sh/snmp/while.sh

while.sh

#!/bin/sh

host[0]='R2851'
IP[0]="10.48.4.10"
name[0]='Ricoh Aficio MP 2851 Продажи Мск'
email[0]='куда@посылаем.ру'
snmp[0]='.1.3.6.1.4.1.367.3.2.1.2.19.1.0'
trim[0]=44


host[1]='XRX0000AAF18D03'
IP[1]="10.48.4.23"
name[1]='Xerox Phaser 3435DN ОИТ Мск'
email[1]='куда@посылаем.ру'
snmp[1]='.1.3.6.1.4.1.253.8.53.13.2.1.6.1.20.1'
trim[1]=50


host[2]='XRX9C934E06777C'
IP[2]="10.48.4.22"
name[2]='Xerox Phaser 3250DN Мск Секретарь'
email[2]='куда@посылаем.ру'
snmp[2]='.1.3.6.1.4.1.253.8.53.13.2.1.6.1.20.1'
trim[2]=50


for i in {0..2}
do
	str=$(snmpwalk -c public -v2c ${IP[$i]} ${snmp[$i]})
	str=${str:${trim[$i]}}
	./sendemail.sh "${name[$i]}" "Пробег: $str\n${name[$i]}\n${IP[$i]}\n${host[$i]}" "${email[$i]}"
done