05-23-2009
Expect Scripting Help
Hi All,
I am suppose to capature the value command `show ip route` of a router in a Expect script. But i am not able to catch the value in a variable or a file in the following Expect script.
#!/usr/bin/expect -f
set input [open "/root/output.txt" "w"]
spawn telnet localhost $argv
expect "Escape character is '^]'."
expect -re "Connected (.*)\n"
send "\r"
expect "> "
send "enable\r"
expect "Password: "
send "route\r"
expect "# "
# exec "show ip route" >@ $input
send "show ip route\r"
expect -re "(.*)\n"
set outcome $expect_out(0,string)
# send $outcome
puts $input $outcome
expect "# "
send "exit\r"
close $input
Please help me debug a script.
Regards,
Harikrishna.
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
I am trying to write an expect script for remote server login. At some point of time I need to telnet based on the output of grep command. Based on the output I need to select the ip address of the server. How can I write an expect script for the same. The output of the grep command is as follows:... (1 Reply)
Discussion started by: ayyappakumar
1 Replies
2. Shell Programming and Scripting
Hi experts,
I am trying to develop a script using Expect. I am stuck somewhere. I need ur help guys.
I have sun solaris where i need to input the following commands-
bash-2.05$ telnet 11.13.58.39 2310
Trying 0.0.0.0...
Connected to ..
Escape character is '^]'.
CONNECTING TO...
... (3 Replies)
Discussion started by: thepurple
3 Replies
3. Shell Programming and Scripting
Hello to all...this is my first post (so please go easy). :)
I feel pretty solid at expect scripting, but I'm running into an issue that I'm not able to wrap my head around. I wrote a script that is a little advanced for logging into a remote Linux machine and changing text in a file using sed.... (2 Replies)
Discussion started by: v1k0d3n
2 Replies
4. Shell Programming and Scripting
Hi,
I am new to expect scripting and need your help in the following task.
I want an expect script to take the commands from an input file and then execute the commands and give the command execution output in an otput file.
The command execution part is normal and I did it via script by... (2 Replies)
Discussion started by: Sooryaa
2 Replies
5. Shell Programming and Scripting
I am trying to write an expect script which will read information from a file that contains username and password, and change the password for each user accordingly. The list contains around 100 users. I am new to both Solaris and expect. I have successfully been able to set the first user's... (9 Replies)
Discussion started by: DoctorOctagon
9 Replies
6. Shell Programming and Scripting
Hi All,
I am trying to connect a router using Expect scripting. But my script shows error.One more thing after the command telnet localhost 2000
we should press ENTER KEY once before the command prompt asks for "enable" and password.Please help correctiong my script.
#!/usr/bin/expect --
... (2 Replies)
Discussion started by: Harikrishna
2 Replies
7. Shell Programming and Scripting
Hi I have a working expect script below. The script continues to log cisco router configurations until all the ip addresses in the "routerlist1" has been read. Problem will start to happen when one of the ip address is not reacheable via ssh or telnet. The script will stop to read the rest of the... (2 Replies)
Discussion started by: yano1o14
2 Replies
8. Shell Programming and Scripting
Hello,
I tried to use expect to catch information from my nagios and send me a call but i have nothing when i execute the script :
0 - add : account SIP
1 - trext : information from nagios
text2wav : conversion text to wav ( text to speech )
pjsua : connection thru the SIP
... (0 Replies)
Discussion started by: acidozik
0 Replies
9. Shell Programming and Scripting
I was wondering if I could do this a bit better.
another script calls this script and logs into a device, does the relavant "show commands" and then saves those to a file.
My problem is that the buffer isn't large enough to the output of some of the commands.
here is an excerpt of what i'm... (0 Replies)
Discussion started by: gen1mx6
0 Replies
10. IP Networking
Hi
I am new to IP configuration and using expect script
I have a requirement like
I need to write a expect script that can ssh to a remote machine(linux1) using password which already has IP, once logged inside machine need to reboot remote machine(linux1) and again login to same remote... (1 Reply)
Discussion started by: Priya Amaresh
1 Replies
LEARN ABOUT PHP
expect_expectl
EXPECT_EXPECTL(3) 1 EXPECT_EXPECTL(3)
expect_expectl - Waits until the output from a process matches one of the patterns, a specified time period has passed, or anEOFis seen
SYNOPSIS
int expect_expectl (resource $expect, array $cases, [array &$match])
DESCRIPTION
Waits until the output from a process matches one of the patterns, a specified time period has passed, or an EOF is seen.
If $match is provided, then it is filled with the result of search. The matched string can be found in $match[0]. The match substrings
(according to the parentheses) in the original pattern can be found in $match[1], $match[2], and so on, up to $match[9] (the limitation of
libexpect).
PARAMETERS
o $expect
- An Expect stream, previously opened with expect_popen(3).
o $cases
- An array of expect cases. Each expect case is an indexed array, as described in the following table:
Expect Case Array
+----------+--------------------------+---+---+---+
|Index Key | | | | |
| | | | | |
| | Value Type | | | |
| | | | | |
| | Description | | | |
| | | | | |
| | Is Mandatory | | | |
| | | | | |
| | Default Value | | | |
| | | | | |
+----------+--------------------------+---+---+---+
| 0 | | | | |
| | | | | |
| | string | | | |
| | | | | |
| | pattern, that will be | | | |
| | matched against the out- | | | |
| | put from the stream | | | |
| | | | | |
| | yes | | | |
| | | | | |
| | | | | |
| | T{ 1 | | | |
| | | | | |
| | mixed | | | |
| | | | | |
| | value, that will be | | | |
| | returned by this func- | | | |
| | tion, if the pattern | | | |
| | matches | | | |
| | | | | |
| | yes | | | |
| | | | | |
| | | | | |
| | T{ 2 | | | |
| | | | | |
| | integer | | | |
| | | | | |
| | pattern type, one of: | | | |
| | EXP_GLOB, EXP_EXACT or | | | |
| | EXP_REGEXP | | | |
| | | | | |
| | no | | | |
| | | | | |
| | | | | |
| | EXP_GLOB | | | |
| | | | | |
+----------+--------------------------+---+---+---+
RETURN VALUES
Returns value associated with the pattern that was matched.
On failure this function returns: EXP_EOF, EXP_TIMEOUT or EXP_FULLBUFFER
CHANGELOG
+--------+---------------------------------------------------+
|Version | |
| | |
| | Description |
| | |
+--------+---------------------------------------------------+
| 0.2.1 | |
| | |
| | Prior to version 0.2.1, in $match parameter a |
| | match string was returned, not an array of match |
| | substrings. |
| | |
+--------+---------------------------------------------------+
EXAMPLES
Example #1
expect_expectl(3) example
<?php
// Copies file from remote host:
ini_set("expect.timeout", 30);
$stream = fopen("expect://scp user@remotehost:/var/log/messages /home/user/messages.txt", "r");
$cases = array(
// array(pattern, value to return if pattern matched)
array("password:", "asked for password"),
array("yes/no)?", "asked for yes/no")
);
while (true) {
switch (expect_expectl($stream, $cases)) {
case "asked for password":
fwrite($stream, "my password
");
break;
case "asked for yes/no":
fwrite($stream, "yes
");
break;
case EXP_TIMEOUT:
case EXP_EOF:
break 2; // break both the switch statement and the while loop
default:
die "Error has occurred!";
}
}
fclose($stream);
?>
SEE ALSO
expect_popen(3).
PHP Documentation Group EXPECT_EXPECTL(3)