<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>IT science: заметки с тегом toner</title>
<link>https://itscience.pro/tags/toner/</link>
<description>IT science — статьи и инструкции из мира IT</description>
<author></author>
<language>ru</language>
<generator>Aegea 11.4 (v4171)</generator>

<itunes:subtitle>IT science — статьи и инструкции из мира IT</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Наблюдение за принтерами по SNMP</title>
<guid isPermaLink="false">4</guid>
<link>https://itscience.pro/all/nablyudenie-za-printerami-po-snmp/</link>
<pubDate>Wed, 03 Apr 2019 12:04:04 +0300</pubDate>
<author></author>
<comments>https://itscience.pro/all/nablyudenie-za-printerami-po-snmp/</comments>
<description>
&lt;p&gt;Удобно наблюдать состоянием картриджей сетевых принтеров с помощью следующего bash-скрипта:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;#!/bin/bash

function isalive {
    ping -c 1 -i 0.2 -W 1 $1 &amp;amp;&amp;gt;/dev/null
    if [ $? -ne 0 ] ; then return 1;else return 0; fi
}

function show_ink
{
ip=$1
name=$2
mib_c=&amp;quot;1.3.6.1.2.1.43.11.1.1.6&amp;quot;
mib_f=&amp;quot;1.3.6.1.2.1.43.11.1.1.8&amp;quot;
mib_l=&amp;quot;1.3.6.1.2.1.43.11.1.1.9&amp;quot;

full=($( snmpwalk -v1 -c public $ip $mib_f -Oa | awk -F &amp;quot;INTEGER: &amp;quot; &amp;#039;{print $2}&amp;#039;))
 cur=($( snmpwalk -v1 -c public $ip $mib_l -Oa | awk -F &amp;quot;INTEGER: &amp;quot; &amp;#039;{print $2}&amp;#039;))
echo &amp;#039;&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&amp;#039;
echo &amp;#039;&amp;lt;b&amp;gt;&amp;lt;a href=&amp;quot;http://&amp;#039;$ip&amp;#039;/&amp;quot; name=&amp;quot;&amp;#039;$name&amp;#039;&amp;quot; target=&amp;quot;_blank&amp;quot;&amp;gt;&amp;#039;$name&amp;#039;&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;br /&amp;gt;&amp;#039;

for ((i = 0; i &amp;lt; ${#full[@]}; i++))
do
    x=${cur[$i]}
    y=${full[$i]}
    ii=$((i+1))
    level=`echo $x/$y*100|bc -l|awk -F &amp;quot;.&amp;quot; &amp;#039;{print $1}&amp;#039;`
    if [ -z $level ]; then level=1; fi
    if [ `snmpwalk -v1 -c public $ip $mib_c.1.$ii -O0vs| awk -F &amp;quot;:&amp;quot; &amp;#039;{print $1}&amp;#039;| grep -i &amp;#039;Hex-STRING&amp;#039;` ];then
        ink=`snmpwalk -v1 -c public $ip $mib_c.1.$ii -O0vsq | tr -d &amp;#039;\n&amp;#039; | xxd -r -p `
    else 
ink=`snmpwalk -v1 -c public $ip $mib_c.1.$ii -O0vsq | tr -d &amp;#039;&amp;quot;&amp;#039;`
    fi
    if [ -z &amp;quot;$ink&amp;quot; ]; then
continue
    fi
    if (( $level&amp;lt;0 )); then level=0; fi
    if (( $level&amp;lt;20 ));then
if (( $level&amp;lt;1 ));then
    echo &amp;#039;&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;&amp;lt;b&amp;gt;&amp;#039;$ink:$level%&amp;#039;&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&amp;#039;
else
    echo &amp;#039;&amp;lt;font color=&amp;quot;goldenrod&amp;quot;&amp;gt;&amp;#039;$ink:$level%&amp;#039;&amp;lt;/font&amp;gt;&amp;lt;br /&amp;gt;&amp;#039;
fi
    else
echo $ink:$level%&amp;#039;&amp;lt;br /&amp;gt;&amp;#039;
    fi
done
echo &amp;#039;&amp;lt;/td&amp;gt;&amp;#039;
}
j=0
echo &amp;#039;&amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;#039;
echo &amp;#039;&amp;lt;meta http-equiv=&amp;quot;refresh&amp;quot; content=&amp;quot;15&amp;quot; &amp;gt;&amp;#039;
echo &amp;#039;&amp;lt;table cellpadding=&amp;quot;10&amp;quot;&amp;gt;&amp;#039;
echo &amp;#039;&amp;lt;tr&amp;gt;&amp;#039;
while IFS=&amp;#039;&amp;#039; read -r line || [[ -n &amp;quot;$line&amp;quot; ]]; do
    ip=`echo &amp;quot;$line&amp;quot;|awk &amp;#039;{print $1}&amp;#039;`
    name=`echo &amp;quot;$line&amp;quot;|awk -F&amp;quot;\&amp;quot;&amp;quot; &amp;#039;{print$2}&amp;#039;`
    if isalive $ip; then show_ink $ip &amp;quot;$name&amp;quot;; j=$(( j+1 )); fi
    if (( $j==3 )); then j=0;echo &amp;#039;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;#039;;fi
done &amp;lt; &amp;quot;/home/ipator/ink/printers.txt&amp;quot;
echo &amp;#039;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;#039;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Скрипт генерит страничку, из списка файла printers.txt&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;192.168.111.10«HP 5550»&lt;br /&gt;
192.168.111.11«HP m750»&lt;br /&gt;
192.168.111.12«HP T795»&lt;br /&gt;
192.168.111.13«HP T790»&lt;br /&gt;
192.168.111.14«HP 5525»&lt;br /&gt;
192.168.111.15«Epson 9880»&lt;br /&gt;
192.168.111.16«Epson 3880»&lt;br /&gt;
192.168.111.17«Epson SC-P800»&lt;br /&gt;
192.168.111.17«HP M276»&lt;br /&gt;
192.168.111.18«HP 1536»&lt;br /&gt;
192.168.111.19«HP 1505»&lt;br /&gt;
192.168.111.20«KX-MB2051»&lt;br /&gt;
192.168.111.21«HP 400»&lt;br /&gt;
192.168.111.22«HP 1212»&lt;br /&gt;
192.168.111.23«HP 1606»&lt;br /&gt;
192.168.111.24«HP M4276»&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Получается вот такая страничка&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://itscience.pro/pictures/inks.png" width="800" height="356.03996366939" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Запускать скрипт можно через cron:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;*/5 * * * * /opt/ink/showink.sh&lt;/p&gt;
&lt;/blockquote&gt;
</description>
</item>


</channel>
</rss>