I must automatically monitor and manage a large number of boxes on our network.
I have been using perl/Net::Telnet and expect/telnet and also perl/ssh and expect/ssh to reach the command line of the remote boxes. Scripts are working but slow.
(Yes, I do use SNMP also but many boxes do not speak SNMP)
I believe that there is some protocol or terminal negotiating that I may be ignoring that blocks when the remote box sends a query and I do not respond.
I tried to read the RFC on Telnet which appeared to have an infinite number of options. My application is very simple: get to the remote command line.
Here is an example of expect/ssh (telnet exactly the same result) that includes unexpected data then the remote blocks for 10 seconds (local or remote default timeout?) then continues with expected response.
You see I was looking for theprompt, " > ", which does appear 10 seconds later!
Part does appear to be a terminal command. I have to guess the remote box is asking me a question and I am failing to answer.
Surprising is that using ssh rather than Telnet gives the same results.
Manual use of ssh or Telnet = no delays.
Script use of ssh or Telnet = 10 second delays for each send/expect cycle!
10 seconds is the standard delay for expect. You tell expect to expect something, so expect waits 10 seconds. If it doesn't see it in 10 seconds, it goes to the next line.
That bit of code you posted doesn't make sense to me.
To me it should look like:
[quote=System Shock;302315605]10 seconds is the standard delay for expect. You tell expect to expect something, so expect waits 10 seconds. If it doesn't see it in 10 seconds, it goes to the next line.
That bit of code you posted doesn't make sense to me.
----------------------------------------------------------------------
Thanks rapid response.
I should have been more clear: I posted the log output NOT the script!
Used the code flag to preserve format.
I think you are saying expect always waits the full timeout period!
If this is the case then I still have a problem. I am dealing with thousands of boxes and unless I go to parallel processing I will never get around to all the boxes! Most respond in a second or so but some can take a few seconds if busy. So how do I set my timeout??? If I leave it at the default then that is 10,000 x n seconds where n is the number of send/expect cycles!
I was expecting that the remote box would respond to a command and expect would continue to the next operation immediately upon receipt of the expected response! But I do not see the expected response in the log file until after the timeout has occurred.
hi, please help, keep getting this bolded error and look it up and people say
its your environment variable though i tried to set it manually in expect..it run fine if i run it manually but once i run it by cronjob it error below..i tried to comment out ip/login info with *..
logfile::
START... (0 Replies)
Hi All,
I have an Expect script which logs into Cisco switch, performs a show interface command. I want to read a file of ip addresses which will be passed to the expect script.
The script to read the file works, the expect script works on it's own but when i call the 'expect' script from the... (12 Replies)
At times I find the need to test that the tacacs port 49 is open.
The code below works but is painfully slow because I have to wait on the timeouts.
Examples of possible responds
router1#telnet 10.11.20.14 49
Trying 206.112.204.140, 49 ... Open
route1#telnet 10.11.19.14 49
Trying... (1 Reply)
I've got some expect/tcl scripts.
Now i want to add a function that allows to open a telnet connection and redirect the output to a logfile.
On the shell/terminal i tried something like:
'telnet 192.168.123.123 12121 > /home/user/logging/log-telnet.log'
and the telnet is redirected into the... (2 Replies)
Hello
I'm working using expect to automate telnet commands...i want to check if telnet fails and in this case...certain message should appear or certain word should be out in a file).
Thses are the messages that apeear if telnet fails:
Trying 172.16.3.115...
telnet: Unable to connect... (0 Replies)
Hi All,
I am trying to write a expect script to telnet and run a command on a remote host.The command i want to send contains a text value is contained in file.txt in the linux box from where i am running the expect script.I want to pass the contains of file.txt into a variable and call the... (1 Reply)
Hi all,
I have written a small expect script which should spawn a telnet session login and execute some commands.
#!/usr/bin/expect -f
spawn telnet $env(IP)
match_max 100000
expect "login:"
send -- "******\n"
expect -exact "Password:"
send -- "****\n"
expect "%"
Now I have got... (2 Replies)
So here is what I am trying to do. I have a large # of switches and routers I am trying to log into. Unfortunately some have ssh only, some have telnet only. and some i have never logged into with ssh. I first want it to SSH, if i have never logged into the box it will ask for adding the ssh key. I... (0 Replies)
Somewhat long story:
I have a simple Perl CGI script that uses Expect to Telnet to a device and grab some data, and then spits it back to Perl for display on the Webpage.
This works for many devices I've tried, but one device just fails, it keeps rejecting the password on this device, only... (1 Reply)
I have two sripts running in bash. The first one uncompresses log files and moves them to a working directory using uncompress -c and > output to new directory. It then creates one control record to assure our search returns a record. It then calls or executes the second script, which is a grep for... (6 Replies)