Timeouts in expect script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Timeouts in expect script
# 8  
Old 02-06-2012
Cant really explain that, your code should be fine. Give this a try:

Code:
#!/usr/bin/expect --
set timeout 600
match_max 10000
stty -echo
log_user 0
spawn -noecho sudo -u introot /home/introot/bin/twssh [lindex $argv 0]
expect root
send_user "Entering [lindex $argv 0]\r"
send "uname\r"
log_user 1
expect "Linux" {send "for i in `df -lPh |sed s/\%// |sed '1d' |awk '{if (\$(NF-1) >= 88) print \$NF}'`; do echo \" \$i has `df -hlP \$i | tail -1 | awk '{print \$2, of space,\$(NF-1)}'` is full\" && find \$i -xdev -type f -size +10000k -exec stat -c\"%U %n %s\" {} \\; | sort -nrk 3 | head -40; done\recho NOW_DONE\r"
} "SunOS" {send "for i in `df -kl |sed s/\%// |sed '1d' |awk '{if (\$(NF-1) >= 88) print \$NF}'`; do echo \" \$i has `df -kl \$i | tail -1 | awk '{print \$2, of space,\$(NF-1)}'` is full\" && find \$i -xdev -type f -size +10000k -exec ls -l {} \\; | sort -nrk 5 | head -40; done\recho NOW_DONE\r"
}
set NewLineChar "\r"
expect {
    $NewLineChar { append dbscntl $expect_out(buffer); exp_continue}
    "NOW_DONE" { append dbscntl $expect_out(buffer) }
}
puts $dbscntl
send "exit\r"
expect eof

Edit: ** Note there are 3 changes above in red: scroll over to see those off the edge! **
# 9  
Old 02-06-2012
Well, it works, but now output flushed twice! Is there any special sequence to flush screen which i can cut off from $dbscntl?
# 10  
Old 02-06-2012
Well, if by flushed you mean cleared, you could try the vt* clear sequence <esc>[2J

If everything is being output twice, it's because the $dbscntl string is designed to be written to a logfile, sounds like you just want output to the screen, so replace from set NewLineChar "\r" down with:

Code:
expect "NOW_DONE"
send "exit\r"
expect eof


Last edited by Chubler_XL; 02-06-2012 at 01:00 AM..
# 11  
Old 02-06-2012
Is there any way to remove this sequence from variable or to ignore it?
# 12  
Old 02-06-2012
Yes try:

Code:
regsub -all {.[2J} $dbscntl "" dbscntl

Before you use puts
# 13  
Old 02-06-2012
Added and got such error
Code:
couldn't compile regular expression pattern: brackets [] not balanced
    while executing
"regsub -all {.[2J} $dbscntl "" dbscntl"

If i terminate bracket with backslash, script works like in previous attempts
# 14  
Old 02-06-2012
Sorry about missing the backslash, your escape code must be different.

How about this:

Code:
regsub -all {\u001b\[..} $dbscntl "" dbscntl

This User Gave Thanks to Chubler_XL For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

Expect script returning string following a found expect.

I'm fairly new to scripting so this might not be possible. I am using Expect with Cisco switches and need to capture the string after finding the expect request. For example, when I issue "show version" on a Nexus switch, I'm looking to capture the current firmware version: #show version ... (0 Replies)
Discussion started by: IBGaryA
0 Replies

2. IP Networking

Problems and doubts with sockets and timeouts

Hi! I need some help to understand a little bit more the behaviour about socket and TCP connections... Here is my problem I have a client and a server that were written in python. The server program wait until a message arrive and then print the message but if the message not arrive in a second... (2 Replies)
Discussion started by: Kovalevski
2 Replies

3. Shell Programming and Scripting

SFTP or scp with password in a batch script without using SSH keys and expect script

Dear All, I have a requirement where I have to SFTP or SCP a file in a batch script. Unfortunately, the destination server setup is such that it doesn't allow for shell command line login. So, I am not able to set up SSH keys. My source server is having issues with Expect. So, unable to use... (5 Replies)
Discussion started by: ss112233
5 Replies

4. Programming

Calling another expect script inside an expect script

I have an expect script called remote that I want to call from inside my expect script called sudoers.push, here is the code that is causing me issues: set REMOTE "/root/scripts/remote" ... log_user 1 send_user "Executing remote script as $user...\n" send_user "Command to execute is: $REMOTE... (1 Reply)
Discussion started by: brettski
1 Replies

5. Programming

Calling expect script inside another expect

Hi, Am very new to expect scripting.. Can You please suggest me how to call an expect script inside another expect script.. I tried with spawn /usr/bin/ksh send "expect main.exp\r" expect $root_prompt and spawn /usr/bin/ksh send "main.exp\r" expect $root_prompt Both... (1 Reply)
Discussion started by: Priya Amaresh
1 Replies

6. 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

7. 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

8. UNIX for Advanced & Expert Users

Facing file processing timeouts

Hi In our ETL application we have used simple scripts to move & split the files. We are randomly facing timeouts on these jobs. It indicates we are running out of resources. How should I confirm the resources are inadequate? I know we have commands like vmstat & iostat which displays... (3 Replies)
Discussion started by: videsh77
3 Replies

9. UNIX for Dummies Questions & Answers

Device Timeouts on Unix Server

Hi I am brand new to the forum I have very limited understanding of unix, but am very computer literate. At work we have a unix server which has been the bane of our lives. We have stopped being able to access the network drives and the screen has lots of device timeouts. I have learned how to do... (1 Reply)
Discussion started by: scovell01
1 Replies

10. Cybersecurity

UNIX Network timeouts

Hi, can anyone point me in the right direction regarding a UNIX setting that determines when a network connection will timeout? I am getting network timeouts and I would like to know if there is a setting in UNIX 11i OS that I can modify to increase the time limit. Thank you (4 Replies)
Discussion started by: Allano
4 Replies
Login or Register to Ask a Question