Sponsored Content
Top Forums Shell Programming and Scripting Expect script to collect logs in expert mode Post 303003237 by shunya on Sunday 10th of September 2017 09:35:08 PM
Old 09-10-2017
RedHat Expect script to collect logs in expert mode

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]#

 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

strange expect script behavior, or am i misunderstanding expect 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

2. Shell Programming and Scripting

Need help with Expect script for Cisco IPS Sensors, Expect sleep and quoting

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)
Discussion started by: genewolfe
1 Replies

3. Shell Programming and Scripting

script to collect all db information

hi all I am looking for shell script ,by which i need to gather all the DB information in Sybase server . Thanks in advance :) (3 Replies)
Discussion started by: mvsramarao
3 Replies

4. Shell Programming and Scripting

Expect command use for interactive mode of scripting

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)
Discussion started by: Dhruvak
6 Replies

5. Red Hat

collect red hat linux error logs

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)
Discussion started by: zhaoyy
1 Replies

6. Shell Programming and Scripting

How to collect the logs with in two time stamp ?

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)
Discussion started by: zenkarthi
5 Replies

7. Shell Programming and Scripting

Expect doesn't output the logs

(qemu) migrate -d tcp:192.168.122.1:4444 (qemu) info migrate capabilities: xbzrle: off Migration status: completed total time: 4425 milliseconds downtime: 3 milliseconds transferred ram: 130338 kbytes remaining ram: 0 kbytes total ram: 1057152 kbytes duplicate: 232613 pages normal:... (0 Replies)
Discussion started by: yanglei_fage
0 Replies

8. Shell Programming and Scripting

If I ran perl script again,old logs should move with today date and new logs should generate.

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)
Discussion started by: Sanjeev G
1 Replies

9. UNIX for Beginners Questions & Answers

How to set file transfer in binary mode in SFTP using Expect?

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
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)
All times are GMT -4. The time now is 08:46 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy