Expect script help (newbie)


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Expect script help (newbie)
# 1  
Old 06-02-2010
Expect script help (newbie)

Im a UNIX newbie so please excuse the little knowledge I have, Im trying to learn. I created a script that logs into multiple servers, gets data and saves it on the local server.

The script looks like this..
Code:
#!/opt/local/bin/expect

# Set username/password to initially login to switch.
set login_user "username"

set timeout -1

proc getpass pwprompt {
 set oldmode [stty -echo -raw]
 send_user "$pwprompt"
 set timeout -1
 expect_user -re "(.*)\n"
 send_user "\n"
 eval stty $oldmode
return $expect_out(1,string)
}

exec echo "From: EP Line Count" > myoutputfilenew
   exec echo "To: test@tester.com" >>myoutputfilenew
   exec echo "Subject: EP counts per HIQ" >>myoutputfilenew                      
   exec echo "EP LIST"       >> myoutputfilenew
   exec echo "" >> myoutputfilenew
   exec echo "Here are the EP line counts for each HIQ." >> myoutputfilenew
   exec echo " " >> myoutputfilenew


set login_pass [getpass "whats your password? "]
set timeout 1
set get_count "wc -l NEW_FILE"
set hostfile [open "EPCHECK_ALL.hosts" "r"]
while {[gets $hostfile line] != -1} {
  puts "My current host file is $line."
  sleep 1
  spawn ssh $login_user@$line
    expect {
      "password:" {send "$login_pass\r"}
      "(yes/no)?" {send "yes\r"; exp_continue}
    }
    expect "$"
    send "./scriptFindEDP >FILENAME\r"
    expect "$"
    send "cat FILENAME | sed 's/ //g' | sed '/^$/d' | grep -v 'EP' | grep -v '*' | sort > NEW_FILE\r"
    expect "$"
    send "$get_count\r"
    expect "$get_count\r"
    expect -re "(.*)\r"
    puts "The number of lines with COS is$expect_out(1,string)"
    exec echo "Total lines with EP COS for $line is $expect_out(1,string)" >> myoutputfilenew

#    set result $expect_out(buffer)
#    set result $expect_out(1,string)
#    puts "The answer is $result."
   expect "$"
   send "exit\r"
    send "exit\r"
}
close $hostfile

The output does this....
Total lines with EP COS for switchone is
47 NEW_FILE

How do I get the "47 NEW_FILE" to stay on the same line as the rest?

Also, I want to make it e mail me the outputfile when its all said and done, Im do not know how to set that automatically.

Any and all help will be greatly appreciated. Smilie

Last edited by vbe; 06-02-2010 at 11:06 AM.. Reason: use code tags
# 2  
Old 06-02-2010
i am also a noob in unix. thts why cant help u much. i am nt sure hw does expect works. was reading abt it on net while seeing the script.

bt about mailing urself ...
use mailx command at the end of ur script
Code:
cat "$myoutputfilenew" | mailx -s "$SUBJECT" "$abc@gmail.com"

abt automising this process... use crontab.

on ur home page use the below commands.
Code:
crontab -e
it will display all the entries of cron in it. accordingly set the time parameters and set

thts all i can help now
# 3  
Old 06-02-2010
Thank you. Every bit of information will help the learning process. I will try to add the "cat "$myoutputfilenew" | mailx -s "$SUBJECT" "$abc@gmail.com" to the end of my script and see what happens....thank you again.

---------- Post updated at 12:43 PM ---------- Previous update was at 10:45 AM ----------

Stupid question.....

Where in the script would I add that e mail command?
# 4  
Old 06-03-2010
Code:
exec echo "Total lines with EP COS for $line is $expect_out(1,string)" >> myoutputfilenew

"cat "$myoutputfilenew" | mailx -s "$SUBJECT" "$abc@gmail.com

i think this is the last updation that is happening in ur script. so u use mailx here and send it. and did u get ur cronjob done?
# 5  
Old 06-03-2010
Ok will give it a shot. No cron yet, will wait until I have the script functioning first. Thanks again!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Expect Script Newbie for IF/THEN

Hello, 1st time visitor, and just learning some probably very basic scripting here, but any help would be appreciated. GOAL: Login to a device on the network via CLI using a mix of bash/expect, and take into account different potential responses depending on the status of the device. ... (0 Replies)
Discussion started by: ocbroadband
0 Replies

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

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

Shell script newbie, what is problem with my script?

Hello, Ubuntu server 11.10 can anybody help what is problem with my shell script? #!/bin/bash #script to find out currently logged on user is root or not. if ] then echo "You are super" else echo "You are awesome!" fi When I run script, I get following output ./uid: line 3: I... (4 Replies)
Discussion started by: kaustubh
4 Replies

7. Shell Programming and Scripting

please help newbie with script

hi!i am musician and have very little knowledge about shell here's my script #!/bin/bash for (( ; ; )) do wget some wikipedia article here --output-document=- > /dev/audio done so it downloads random wikipedia page (forum doesnt let me post link so i wrote some wikipedia article here... (6 Replies)
Discussion started by: karlhungus
6 Replies

8. Shell Programming and Scripting

Expect script help needed- script failing if router unavailable

Hey all. Sometimes I'm tasked to change some router configs for the entire network (over 3,000 Cisco routers). Most of the time its a global config parameter so its done with a loop and an IP list as its the same configuration change for all routers. This is working OK. However, sometimes an... (3 Replies)
Discussion started by: mrkz1974
3 Replies

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

10. 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
Login or Register to Ask a Question