Need help with Expect and Shell script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need help with Expect and Shell script
# 1  
Old 04-10-2008
Error Need help with Expect and Shell script

This is my shell script which calls an expect file, i am trying to find out server.log file sizes on various servers. But what should be correct way to do that, is there any way i can run a for loop inside the expect file which can take cat <filename> as input. I know for can be used in expect file using counters but i need the content of file as input in in for loop.
---------------------------------------------------------------------

echo "Please enter your id: "
read uid
stty -echo
echo "Enter your password: "
read pass
stty echo

#loop into different boxes
for i in server1 server2 server3 server4 server5
do

#Check for the log file/clear it if there
if [ -f ~/tmp2.log ]
then
cp /dev/null ~/tmp2.log
fi

#this passes the userid pass and the servername to the expect file
expect find_server_logs.exp $i $uid $pass


#the tmp.log file contains the path of server.log file on various paths
#can this be executed within the expect file, or is there any better way to write the expect in the shell script itself.

for x in `cat ~/tmp.log`
do

# ls -l will take one input at a time from the file tmp.log and show its size
ls -l $x >> ~/tmp2.log
done

echo
echo "Hostname : $i"
echo
cat ~/tmp2.log | sort +4nr

done

________________________________________________________
#!/usr/bin/expect -f

spawn ssh [lindex $argv 1]@[lindex $argv 0] find /apps/logs/sunone -name server.log > ~/tmp.log
expect "[lindex $argv 1]@[lindex $argv 0]'s password:"
send "[lindex $argv 2]\r"
interact

*******************************

now the thing is i want the ls -l $x command to run on the various servers but fot that i have to take the inut for $x from the tmp.log file (cat tmp.log) is that possible or if there is any better way.
# 2  
Old 04-10-2008
Looks that my question was a bit complecated. Well if anyone could give an example or resource as to how we can use a while loop in an expect file, like to read till the end of any file.

regards
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to merge Expect script inside shell script?

Hi I have two scripts one is Expect and other is shell. I want to merge Expect code in to Shell script so that i can run it using only one script. Can somebody help me out ? Order to execute: Run Expect_install.sh first and then when installation completes run runTests.sh shell script. ... (1 Reply)
Discussion started by: ashish_neekhra
1 Replies

2. Shell Programming and Scripting

expect script inside shell script not working.

Shell Scipt: temp.sh su - <$username> expect pass.exp Expect script: pass.exp #!/usr/bin/expect -f # Login ####################### expect "Password: " send "<$password>\r" it comes up with Password: but doesnt take password passed throguh file. (2 Replies)
Discussion started by: bhavesh.sapra
2 Replies

3. Shell Programming and Scripting

How to use expect in shell script?

Dear friends, Could you please help me in writing a sample code to connect the remote system (through ssh) using expect in shell script. Thanks in advance.. :-) (1 Reply)
Discussion started by: rajesh.tulluri
1 Replies

4. Shell Programming and Scripting

Help with Expect in Shell Script

Hi All, I have a expect script which is working for single server, but if i am trying to pass value of the variable inside expect, it is not working. Please see below :- expect -c 'spawn ssh username@ip_address ; expect assword ; send "Password1\n" ; send "uptime \n" ; send "free -m \n" ;... (0 Replies)
Discussion started by: Renjesh
0 Replies

5. Shell Programming and Scripting

Calling Shell Script from Expect...

Hi there, I need some help regarding the execution of shell script from expect as the method I am trying is giving me error. I wrote an shell program which takes two arguments to telnet to a device and saves the output in a file. Following is the script.... (0 Replies)
Discussion started by: cyberparanoid
0 Replies

6. Programming

Expect script to run a Shell script on remote server

Hi All, I am using a expect script to run a shell script on remote server, the code is as follows. But the problem is that it executes only first command, and hangs it doesn't run the next commands. spawn ssh $uid@$host expect "password:" send "$password\r" expect "*\r" send... (2 Replies)
Discussion started by: yashwanthsn
2 Replies

7. Shell Programming and Scripting

how to run shell script inside expect script?

I have the code like this : shell script continues ... .... expect -c" spawn telnet $ip expect "login:" send \"$usrname\r\" expect "Password:" send \"$passwd\r\" expect "*\>" send \"$cmdstr\r\" ... (1 Reply)
Discussion started by: robbiezr
1 Replies

8. Shell Programming and Scripting

within shell script send expect and if else

Hi I have written one shell script , using that i am able to connect to remote machine but i have to #!/usr/bin/expect -f set address set username set password set OOLpath set dbusername set dbpasswd set tnsname set recdbusername set recdbpasswd set rectnsname spawn ssh... (1 Reply)
Discussion started by: mnmonu
1 Replies

9. Shell Programming and Scripting

Using Expect results in a Shell script

I am trying to write a shell script that launches an expect script and then use results of the expect script in the rest of the shell script. The expect script is connecting to a remote host and looking up certian user info like UID and home directory. This part is working I then want the... (2 Replies)
Discussion started by: kaltekar
2 Replies

10. Shell Programming and Scripting

Using expect script in a shell script or vice versa

Hi All, Has anyone used expect script in a shell script or vice versa. I have a script which would ssh and scp to other machines. I need to use expect script so that user does not have to enter the password everytime ssh/scp command is executed. The script is as below. I need to pass the... (0 Replies)
Discussion started by: nua7
0 Replies
Login or Register to Ask a Question