Bei etlichen Routern die snmp-Community per telnet zu setzen kann mühsam werden. Ein Script muss her. Das telnet-Kommando ist anscheinend so nicht gut dafür geeignet um eingaben von STDIN zu verarbeiten. Durch google bin ich darauf gekommen, dass viele es mit “expect” lösen. Hier mein Script:
#!/bin/bash
for host in `cat /root/hosts` ; do
expect << EOF
spawn telnet $host
expect "Login: "
send "admin\r"
expect "Password: "
send "secret\r"
expect -exact "-->"
send "snmp set communityname xxx manager xxx\r"
expect -exact "-->"
send "user logout\r"
EOF
done;
Die Hosts stehen in der Datei /root/hosts. Je in einer Zeile.