A few days ago, I was having problem extracting temperature values from a few of our switches in our HPC cluster. For some reason, the switches did not support temperature monitoring through SNMP. They did allow ssh though. So I decided to write a script to automatically send username and password to those switches and execute a particular command to get my task done. Below are those sccripts. One uses expect and the other uses pyexpect :-

You will need to install expect and pyexpect on your system, using yum.

The following script will execute “ls -l” on a remote system.

autologin.sh:-

#!/usr/bin/expect -f
A simple example is a script that automates an ssh session:
set remote_server “localhost”
set my_user_id “kamran”
set my_password “redhat”
set my_command “ls -l”
spawn ssh $my_user_id@$remote_server $my_command
expect “?assword:*” {send “$my_passwordr”}
send “r”
send “exitr”
expect eof

The following script uses python, and will execute “uptime” on a remote system:- pyautologin.sh

#!/usr/bin/python
import pexpect
REMOTE_COMMAND=”uptime”
USER=”kamran”
HOST=”localhost”
PASS=”redhat”
COMMAND=”ssh %s@%s %s” % (USER, HOST, REMOTE_COMMAND)
child = pexpect.spawn(COMMAND)
child.expect(‘password:’)
child.sendline(PASS)
child.expect(pexpect.EOF)
print child.before

««««< End of Document »»»»»