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.
Code:
expect: set expect_out(buffer) "admin@10.100.72.223's password:"
send: sending "xxxxx\r" to { exp4 }
(logo deleted)
MikroTik RouterOS 3.20 (c) 1999-2009 http://www.mikrotik.com/
^[[?62;9;c^[[39;3Rexpect: timed out
expect: does " \r\n\r\r\n\r\r\n\r\r\n\r\r\n\r\r\n\r\r\n\r\r\n\r\n\r MMM MMM
(expected data deleted)
MikroTik RouterOS 3.20 (c) 1999-2009 http://www.mikrotik.com/\r\n\r\r\n\r
\u001b[9999B\r\u001b[9999B\u001bZ \u001b[6n" (spawn_id exp4) match glob
pattern " > "? no
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!
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
Discussion started by: cssanangeles
0 Replies
LEARN ABOUT OPENSOLARIS
cconsole
cconsole(1M) System Administration Commands cconsole(1M)NAME
cconsole , crlogin, cssh, ctelnet - multi window, multi machine, remote console, login, ssh, and telnet commands
SYNOPSIS
$CLUSTER_HOME/bin/cconsole [-s] [ -l username] [clustername... | nodename...]
$CLUSTER_HOME/bin/crlogin [-l username] [clustername...
| nodename...]
$CLUSTER_HOME/bin/cssh [-l username] [-p ssh-port] [clustername...
| nodename...]
$CLUSTER_HOME/bin/ctelnet [clustername... | nodename...]
DESCRIPTION
These utilities initiate a multiple window connection to a set of specified hosts. There are three variations: one that is specifically
intended for remote console access while the others provide remote logins using rlogin, ssh, or telnet.
Each utility starts a host window for each of the specified hosts, as well as a common window. Input directed into the common window is
sent to each of these host windows.
This tool is useful for system administration tasks that require similar things to be done on each of several hosts. For tasks that are
identical on all hosts, typing in the common window sends the characters to all of the hosts. However, the host windows are normal terminal
windows so they can also be used one at a time (by moving the mouse into one of them and typing directly into it) to perform host specific
tasks.
The common window also allows the user to select which hosts receive the characters typed in the common window, so only the specified hosts
will receive input.
These utilities use entries in two different databases, /etc/clusters and /etc/serialports.
cconsole
The cconsole command provides remote console access through the telnet command. All normal telnet escape characters are available to the
user. See the telnet(1) man page for a complete listing of telnet escape characters. Because there are a few telnet escapes that are com-
monly used, they are provided here as well. The escape character is Control-], specified below as ^].
^] quit Quit the session. Analogous to ~. in tip and rlogin.
^] send brk Send a break signal to the remote system. This is what is needed to halt the Sun CPU. The normal key board sequence is
"L1-A."
crlogin
The crlogin utility provides remote login through the rlogin command to multiple cluster nodes.
cssh
The cssh utility establishes Secure Shell connections directly to the cluster nodes through the ssh command.
ctelnet
The ctelnet utility is similar to cconsole except that the connection is directly over the Internet.
OPTIONS
The following options are supported:
-l username Specifies the user name for the ssh connection. This option is passed to the cconsole, crlogin, or cssh utility when the
utility is launched from the CCP. The ctelnet utility ignores this option.
If the -l option is not specified, the user name that launched the CCP is effective.
-p ssh-port Specifies the Secure Shell port number to use. This option is passed to the cssh utility when the utility is launched from
the CCP. The cconsole, crlogin, and ctelnet utilities ignore this option,
If the -p option is not specified, the default port number 22 is used for secure connections.
-s Specifies using Secure Shell connections to node consoles instead of telnet connections. This option is passed to the
cconsole utility when the utility is launched from the CCP. The crlogin, cssh, and ctelnet utilities ignore this option.
If the -s option is not specified, the cconsole utility uses telnet connections to the consoles.
To override the -s option, deselect the Use SSH checkbox in the Options menu of the cconsole graphical user interface (GUI).
ENVIRONMENT VARIABLES
The following environment variables affect the execution of these utilities:
CLUSTER_HOME Location of Sun Cluster System tools. Defaults to /opt/SUNWcluster.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWccon |
+-----------------------------+-----------------------------+
|Interface Stability |Evolving |
+-----------------------------+-----------------------------+
SEE ALSO rlogin(1), ssh(1), telnet(1), tip(1), ccp(1M), chosts(1M), cports(1M), clusters(4), serialports(4), attributes(5)NOTES
The standard set of X Window System command line arguments are accepted.
Sun Cluster 3.2 8 Sep 2007 cconsole(1M)