Unix Tip: Automatizzare le sessioni telnet



Puo' capitare di dover effettuare una operazione (ad esempio lanciare uno script) su piu' server in sequenza: volendo utilizzare esclusivamente telnet e' possibile automatizzare la procedura di login e di esecuzione del comando in modo da poter 'scriptare' la sequenza.

A questo scopo e' possibile utilizzare expect, un linguaggio di scripting estensione del piu' famoso Tcl/Tk.
Uno script expect si presenta cosi':

#!/usr/bin/expect -f
spawn telnet server1
expect "login:"
send "andrea\r"
expect "Password:"
send "segreta\r"
expect "server1>$"
send "comando-da-eseguire\r"
expect "server1>$"
send "exit\r"
expect eof


Una volta salvato il file e reso eseguibile (con il canonico chmod 755) lo script puo' eseguire autonomamente il login sul server e una eventuale sequenza di comandi.
L'esempio in questione e' facilmente adattabile anche a sessioni ftp.

Published: September 23 2006

  • category: