08-04-2008
how do I handle ssh response with expect
I am trying to write an expect script that trys to telnet, if telnet fails, trys to ssh to a remote network devices.
The script works fine until the following is received :
spawn telnet 10.3.2.24
Trying 10.3.2.24...
telnet: connect to address 10.3.2.24: Connection refused
10.3.2.24 is not reachable!!
spawn ssh -l myname 10.3.2.24
The authenticity of host '10.3.2.24 (10.3.2.24)' can't be established.
RSA key fingerprint is b1:z6:22:85:3a:a6:z0:ae:6d:b3:9d:f6:77:85:01:aa.
Are you sure you want to continue connecting (yes/no)?
Ive added
expect {continue connecting*} {send "yes\r"}
at different places within the telnet host not reachable section, but cant
get expect to respond.
Ive added the entire script below for those who may want to look at it.
#! /usr/local/bin/expect --
#
# Setup Log file that will contain all steps of the process.
#============================================================
puts "[exec clear]"
set nam "[ clock format [ clock seconds ] -format "%m%d%H%M" ].log"
log_file -a $nam
#
# Open Seedfile and setup log containing failed connections.
#=============================================================
set ifil [open "seedfileofips" r]
set ofil [open "[ clock format [ clock seconds ] -format "%m%d%H%M" ].err" w]
###
# Main Body. While reading the seedfile, telnet to site
# or ssh to site
#=============================================================
while { [gets $ifil host] >=0 } {
send_user "Standby ... Validating ... $host \n"
puts "[exec clear]"
set taclnam "myname"
set tacpswd "mypassword"
set timeout 30
spawn telnet $host
expect {
{telnet:*} {
puts "$host is not reachable!!"
spawn ssh -l myname $host
expect {password:*} {
send "mypassword\n"
expect ">"
send "en\n"
expect "word:*"
send "mypassword\n"
expect "#"
interact
continue
}
}
{timeout} {
puts ""
puts "$host timed out...Router is probably down!!"
expect eof
wait
return
}
{Unknown*} {
expect eof
wait
return
}
{sername:*} {
send "mypassword\n"
expect "ord:"
send "$mypassword\n"
expect ">"
send "en\n"
expect "assword:"
send "$mypassword\n"
expect "#"
interact
continue
}
}
}
9 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
hello
I installed expect on my solaris box.
now I want to execute this command on several servers as root (all of them have the same root password):
for i in 1 2 3; do ssh root@"srv"$i" ls /; done;
I want of course to skip these 2 steps:
The authenticity of host 'srv3 (172.21.26.25)'... (4 Replies)
Discussion started by: melanie_pfefer
4 Replies
2. UNIX and Linux Applications
Hi All,
I have to make an alert that'll wait for ssh response from the server for certain seconds, if no response is there in between it'll raise an alarm.
Havn't found any option for this yet, pls. help if anyone knows abt this. Any suggestion is welcome. :)
Best Regards,
VG (3 Replies)
Discussion started by: vguleria
3 Replies
3. Shell Programming and Scripting
Hi.
I'm trying to automate access to an Amazon Web Services machine instance. What this means is that my script is trying to use ssh to connect to a new server every time. I know the RSA fingerprint of my new server through an out-of-band channel.
I would like to capture the RSA fingerprint... (0 Replies)
Discussion started by: chorlton
0 Replies
4. Shell Programming and Scripting
I am using Net::SSH::Expect to connect to the device(iLO) with SSH. After the $ssh->login() I'm able to view the prompt, but not able to send any coommands.
With the putty I can connect to the device and execute the commands without any issues.
Here is the sample script
my $ssh =... (0 Replies)
Discussion started by: hansini
0 Replies
5. Shell Programming and Scripting
Hi experts
I know the expect script can match the terminal output to run the the following cmd
I write a script with expect named "test", I want to run ten "test" with background running,
for ((i=1;i<=10;i++)
do
./test -n $i
done
I find all the output of test will print on one... (0 Replies)
Discussion started by: yanglei_fage
0 Replies
6. Shell Programming and Scripting
Hi
I would like to know how to handle my script that expects an input when calling the script and the user doesn't enter anything, I need to re-direct to my helpfile.
Bascically here is my script:
#!/bin/bash
csvdir="/var/local/dsx/csv/general"
csvfile="$csvdir/$csvfile"... (3 Replies)
Discussion started by: ladyAnne
3 Replies
7. Shell Programming and Scripting
(Crossposting note: I have already posted this article on comp.lang.tcl 6 days ago and on the tek-tips dot com forum 3 days ago. This is posted here again, because I didn't get any response on my original articles there).
I use the following script on Solaris to log into a remote host:
... (3 Replies)
Discussion started by: rovf
3 Replies
8. Shell Programming and Scripting
Hi,
I am using Solaris OS,
I want to handle an occasional expression in expect script while logging into a remote server with ssh.
In normal scenario the expected expression is as below,
spawn ssh $user@$ip
expect "assword:"
send "$password\r"
but in a condition when the remote server... (2 Replies)
Discussion started by: varunksharma87
2 Replies
9. Shell Programming and Scripting
I have write a script which contains
ssh -p 12345 dcplatform@10.125.42.50
ssh 127.0.0.1 -p 5555 "$CMD"
ssh root@$GUEST_IP "$CMD"
before I use public key, it works well, now I want to change to "expect", BUT I don't want to change above code and "parameter position"
I can post a... (1 Reply)
Discussion started by: yanglei_fage
1 Replies
LEARN ABOUT CENTOS
telnet-probe
TELNET-PROBE(1) General Commands Manual TELNET-PROBE(1)
NAME
telnet-probe - lightweight telnet-like port probe
SYNOPSIS
$PCP_BINADM_DIR/telnet-probe [-c] [-v] host port
DESCRIPTION
telnet-probe allows the pmdashping(1) daemons to establish connections to arbitrary local and remote service-providing daemons so that
response time and service availability information can be obtained.
The required host and port number arguments have the same meaning as their telnet(1) equivalents.
The -c option causes telnet-probe to perform a connect(2) only. This skips the read(2) and write(2) exercise that would otherwise be done
after connecting (see below).
The -v option causes telnet-probe to be verbose while operating.
Once the telnet connection has been established, telnet-probe reads from stdin until end-of-file, and writes all the input data to the tel-
net connection. Next, telnet-probe will read from the telnet connection until end-of-file, discarding whatever data it receives. Then
telnet-probe exits.
To operate successfully, the input passed via telnet-probe to the remote service must be sufficient to cause the remote service to close
the connection when the last line of input has been processed, e.g. ending with ``quit'' when probing SMTP on port 25.
By default telnet-probe will not produce any output, unless there is an error in which case a diagnostic message can be displayed (in ver-
bose mode only) and the exit status will be non-zero indicating a failure.
PCP ENVIRONMENT
Environment variables with the prefix PCP_ are used to parameterize the file and directory names used by PCP. On each installation, the
file /etc/pcp.conf contains the local values for these variables. The $PCP_CONF variable may be used to specify an alternative configura-
tion file, as described in pcp.conf(5).
DIAGNOSTICS
If telnet-probe succeeds, then 0 will be returned. If the attempt to establish a connection fails or is terminated, then a non-zero exit
status is returned.
SEE ALSO
PCPintro(1), pmdashping(1), pmie(1), telnet(1), connect(2), read(2) and write(2).
Performance Co-Pilot PCP TELNET-PROBE(1)