Re: Expect log_file Issue



On Oct 31, 1:03 pm, Glenn Jackman <gle...@xxxxxx> wrote:
At 2007-10-31 11:28AM, "monkeytime" wrote:



Hi,

I've designed an Expect script to login to a device and turn on it's
syslog functionality. The syslog only sends to STDOUT, so a log_file
captures all of the output.

Once the syslog data starts streaming to STDOUT, I just want the
log_file to keep capturing data until I terminate the Expect script
manually. The issue that comes up is that after issuing the syslog
"on" command, the Expect script terminates and the log_file only
contains the output up to the last Expect command that was issued.

Is there a way I can leave the Expect script "open-ended" or still
running so that STDOUT data still goes to the logfile? I've tried a
"while" loop, timeout settings, sleep settings and leaveopen settings
and nothing worked. I've added a command at the end of the script to
expect bogus data (eg. jsdf98weeufh983r) that I know would never
appear, but that only logs about 10 lines of syslog data and then
terminates.

You'll have to show us what you've got so far.

--
Glenn Jackman
"You can only be young once. But you can always be immature." -- Dave Barry

Thanks for the quick reply, Glenn. Here's the code:

#!/usr/local/bin/expect --

# Set the date.
set date [timestamp -format %C%y%m%d]

# Set the command line arguments.
set ip [lindex $argv 0]

# Create the log file directory.
system `/bin/mkdir /home/vconf/logs/$date`

# Set the log file.
spawn $env(SHELL)
log_file -noappend /home/vconf/logs/$date/$ip-$date.log

# Set host variables.
set pcommand "xxxxxxxx"

# Telnet to the host.
spawn /usr/bin/telnet $ip

# Login to the device.
expect "Password:"
send "$pcommand\r"

# Send the "syslog on" command.
expect "OK"
send "syslog on\r"

On a real telnet session, the "syslog on" command will begin to send
data to STDOUT and one can watch the data fly by. The Expect script,
however, will terminate and return back to the prompt after the
"syslog on" command. What could I append to the script to keep STDOUT
data flowing to the log_file?

Thanks,

Paul

.



Relevant Pages

  • "kill" group of commands from within script
    ... I have a problem with a small shell script. ... and then tries to terminate them ... When I run this command using KornShell, ...
    (comp.unix.shell)
  • Re: Expect log_file Issue
    ... The syslog only sends to STDOUT, ... log_file to keep capturing data until I terminate the Expect script ... running so that STDOUT data still goes to the logfile? ...
    (comp.lang.tcl)
  • Re: Expect log_file Issue
    ... I've designed an Expect script to login to a device and turn on it's ... The syslog only sends to STDOUT, ... Once the syslog data starts streaming to STDOUT, ... contains the output up to the last Expect command that was issued. ...
    (comp.lang.tcl)
  • Interrupting Windows process
    ... it need to be interrupted to terminate ... Either Tclx kill command or exec /bin/kill can be used. ... As far as I understand from MSDN, this is not possible to send console ... Tcl script, which needs to continue and analyze output from the ...
    (comp.lang.tcl)
  • Using SSH to terminate remote systems for disaster recovery
    ... I have a need to terminate a number of AIX 5.1 systems ... from a single script. ... I can do this using ssh. ... if I issue the shutdown command from ssh, ...
    (AIX-L)