Задача состоит в том, чтобы построить с помощью mrtg графики изменения некоторых величин, которые надо получать с удаленного сервера, не поддерживающего snmp. Эти величины можно получить зайдя на этот сервер telnet-м.Например, получить с сервера кол-во коннектов через него в данный момент веремени.
Сделал так:
На сервере (Debian), где строится mrtg в mtrg.cfg создал секцию:
## >> Descr: '' | Name: 'elf2-ree_connections' | Ip: '' | Eth: '' ###
Target[elf2-ree_connections]: `/etc/elf2-ree_connections.sh`
YLegend[elf2-ree_connections]: elf2-ree_connections
ShortLegend[elf2-ree_connections]: connections
MaxBytes[elf2-ree_connections]: 63492
Options[elf2-ree_connections]: gauge, nopercent, growright
Title[elf2-ree_connections]: elf2-ree_connections
PageTop[elf2-ree_connections]: <H1>elf2-ree_connections</H1>
В файле /etc/elf2-ree_connections.sh написан скрипт, который идет на другой сервер-роутер 87.226.ххх.ххх (Linux 2.4.22 ((none)), BusyBox v0.60.5 (2004.03.04-14:03+0000) Built-in shell (ash) ):
#!/usr/bin/expect
spawn telnet 87.226.ххх.ххх
expect {*login:}
send "root\r"
expect {*password:}
send "хххххх\r"
expect {*#}
send "cat /proc/net/ip_conntrack | wc -l\r"
expect {*#}
send "exit\r"
Однако в mrtg возвращается всегда "1" (единица). При этом если ручками зайти телнетом на 87.226.ххх.ххх и выполнить команду
cat /proc/net/ip_conntrack | wc -l
то искомая величина выдается на консоль. Как эту же величину скормить mtrg ?
PS.
Попутно: таким же образом надо забрать последнее значение, выдаваемое командой
# uptime
9:28am up 1 day, 7:11, load average: 0.29, 0.62, 0.97
Как скормить mtrg и именно последнее значение?
Заранее благодарен за подсказки.