I am trying to collect logs from a system in expert mode. Where I login to system and then change mode to expert mode and issue command to collect the log. I have a script which works but It waits for 30 mins even though log collection is complete before that. I have two issues with existing script.
1. Since log collection takes really long time (sometimes about 30 minutes). Expect script does not wait for the prompt and exits at timeout value. So I don't get complete O/P. Hence, I added timeout value of 1800 secs. But this one forces script to wait for 30 mins. I would like to exit as soon as I am back on prompt. I tried using expect exact but need some help on this.
2. How can I capture the current prompt itself as a variable and ask Expect to wait until it gets the prompt. or Make a prompt based on Username variable and hostname lie - USERNAME@SYSNAME##.
Here is my current code.
Code:
#!/usr/bin/expect -f
set timeout 5
set hostname [lindex $argv 0]
set username "admin"
set password "password"
set prompt "(>|#|\\\$) $"
spawn ssh $username@$hostname
expect {
".*key fingerprint" {send "yes\r"; exp_continue}
"assword:" {send "$password\r"}
}
expect -re {\$prompt}
send "show product id\r"
expect -re "\nProduct ID: (.*)$prompt"
set PRDID $expect_out(1,string)
#send "hostname\r"
#expect -re "\n (.*)$prompt"
#set HNAME $expect_out(1,string)
expect -re $prompt
send "expert mode\r"
expect -re "assword:" {send "$PRDID\r"}
#send "$PRDID\r"
expect -re $prompt
#set output $expect_out(buffer);
send "show detailed logs\r"
set timeout 1800 ### To wait for 30 mins
## expect -re $prompt
expect -exact "(.*)## $" ### I tried using expect exact. But it seems something wrong here.
### expect -exact "\nSA@$HNAME##$"
send -- "\r"
send "exit\r"
#puts [open w] $expect_out(buffer);
expect eof
[root@se scripts]#
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)
This Expect script provides expect with a list of IP addresses to Cisco IPS sensors and commands to configure Cisco IPS sensors. The user, password, IP addresses, prompt regex, etc. have been anonymized. In general this script will log into the sensors and send commands successfully but there are... (1 Reply)
Hi All,
I am writing a script(Auto_Installation.sh) which is calling one another script (./update_manager /spare/install/HO7/PME_Response_file.txt)
Now the issue is result of (./update_manager /spare/install/HO7/PME_Response_file.txt) script is
##########################################... (6 Replies)
Hi,
I have two questions,first of all is where can I collect more error logs(the log under /var/log/messages), also give the corresponding explain is grateful.The second one is the log under various versions(such as red hat,suse,etc) is the same or not.
Thanks for answers. (1 Reply)
Hi Gurus
I need to collect the logs between two time stamp... The log files 12 hours format (ex- Nov 14, 2013 12:10:16 AM UTC) I tried the below commands but no luck.
awk '$0 >= "Nov 14, 2013 9:40:01" && $0 <= "Nov 14, 2013 9:55:01"' file
sed -n '/Nov 14, 2013 7:58:00 PM UTC/,/Nov 14, 2013... (5 Replies)
Appreciate help for the below issue.
Im using below code.....I dont want to attach the logs when I ran the perl twice...I just want to take backup with today date and generate new logs...What I need to do for the below scirpt..............
1)if logs exist it should move the logs with extention... (1 Reply)
The below is my script.
/usr/bin/expect<<EOD
spawn /usr/bin/sftp -o Port=$PORT $USER@$HOST
expect "sftp>"
expect "password:"
set timout 15
send "$password\r"
expect "sftp>"
send "lcd $remotedir\r"
expect "sftp>"
... (1 Reply)
Discussion started by: Anilsaggu9
1 Replies
LEARN ABOUT HPUX
opx25
opx25(1M)opx25(1M)NAME
opx25 - execute HALGOL programs
SYNOPSIS
scriptname] char] file-descriptor] file-descriptor] string]
DESCRIPTION
The commands, including are targeted for removal from HP-UX; see the below.
HALGOL is a simple language for communicating with devices such as modems and X.25 PADs. It has simple statements similar to and that are
described below.
Options
recognizes the following options:
Causes to read script as the input program. If is not specified, reads the standard input as a script.
Causes to use char as the first character in the input stream instead of actually reading it from the input descriptor.
This is useful sometimes when the program that calls is forced to read a character but then cannot ``unread'' it.
Causes to use number for the output file descriptor (i.e., the device to use for The default is 1.
Causes to use 'number' for the input file descriptor (ie, the device to use for 'expect'). The default is 0.
Causes to save this string for use when is encountered in a command.
Causes to turn on debugging mode.
Causes to turn on verbose mode.
An script file contains lines of the following types:
(empty) Empty lines are ignored.
Lines beginning with a slash
are ignored (comments)
ID ID denotes a label, and is limited to alphanumerics or
string must be surrounded by double quotes. The text is sent to the device specified by the option. Non-printable charac-
ters are represented as in C; i.e., as DDD, where DDD is the octal ascii character code. in a send string is the
string that followed the option.
Send a break "character" to the device.
Here number is how many seconds to wait before giving up. 0 means wait forever, but this is not advised. Whenever string
appears in the input within the time allotted, the command succeeds. Thus, it is not necessary to specify the entire
string. For example, if you know that the PAD will send several lines followed by an prompt, you could just use as
the string.
The program etc.) is run with the args specified. Do not use quotes here. Also, the program is invoked directly (using so wild
cards, redirection, etc. are not possible.
If the most recent expect or run encountered an error,
go to the label ID.
Similar to but does not fork.
Similar to but goes to standard error instead of to the device.
Sets the program in debug mode.
It echoes each line to as well as giving the result of each expect and run. This can be useful for writing new
scripts. The command disables this feature.
Sends subsequent incoming characters to
This can be used in the file as a security measure, because part of the incoming data stream contains the number of
the caller. There is a similar feature in it writes the time and the login name into the same logfile. The command
disables this feature.
Similar to but better in some cases because it sends only digits to the log file, and not other characters. The command dis-
ables this feature.
Sets a global timeout value.
Each expect uses time in the timeout reservoir; when this time is gone, the program gives up (exit 1). If this com-
mand is not used, there is no global timeout. Also, the global timeout can be reset any time, and a value of 0 turns
it off.
Exits with this value.
0 is success; anything else is failure.
To perform a rudimentary test of configuration files, run by hand, using the option followed by the name of the script file. then sends to
standard output and expects from standard input; thus you can type the input, observe the output, and use the command to see messages. See
the file for a good example of HALGOL programming.
WARNINGS
Use of commands, including is discouraged because they are targeted for removal from HP-UX. Use ftp(1) or rcp(1) instead.
AUTHOR
was developed by HP.
SEE ALSO getx25(1), uucp(1).
TO BE OBSOLETED opx25(1M)