Sponsored Content
Top Forums Shell Programming and Scripting comprehensive expect examples Post 302356276 by Gavster on Friday 25th of September 2009 04:33:50 AM
Old 09-25-2009
Hi,

I wrote an expect script to log in to all cisco switches on our network which uses telnet. The main problem for me was that the usernames and passwords weren't consistent across all switches. My code looked like this ...
Code:
log_file -noappend ./CDP_LOGS/$ip_addr.log
# This spawns the telnet program and connects it to the IP address
 spawn telnet $ip_addr
 #The script expects Password or Username or times out if no response is seen
 expect {
   "Password: "  {login1a $ip_addr}
   "Username: "  {login2a $ip_addr}
   timeout       {abort $ip_addr 1}
 }
 log_file

If "Password: " or "Username: " are identified, the appropriate proc is called (either login1a or login2a respectively). Once logged in successfully, you can continue to send commands using this construct:
Code:
send "command"
 while {1} {
   expect "some output 1" {
     do stuff
   } "some output 2" {
     do stuff
     break
   } "some output 3" {
     do stuff
     break
   }
 }

This expects multiple things and reacts accordingly.

All my output was logged to a file which I used for post-processing.

Hope this is helpful.

Gavin

Last edited by Gavster; 09-25-2009 at 11:06 AM..
 

2 More Discussions You Might Find Interesting

1. Solaris

Comprehensive system documentation by button click

Guys There's a new WebPage where you can generate a comprehensive detailed system documentation by button click. Look at the example at https://sdoctool.sun.com/data/doc.php?ID=sdoctool&N=2 ;) Interested, go to Cheers (0 Replies)
Discussion started by: lebch
0 Replies

2. Red Hat

Comprehensive Disk & Server Logs.

Hello All, I'm using a RHEL6.4 on IBM X3850 X5 server. I want to get a comprehensive report containing disk-wise health status as well as overall server status. I see there's utility "ibm_utl_dsa_dsytd3h-9.51_portable_rhel6_x86-64.bin" which is also used to do diagnostics tasks. I'm not sure of... (1 Reply)
Discussion started by: vaibhavvsk
1 Replies
RBASH(1)						      General Commands Manual							  RBASH(1)

NAME
rbash - restricted bash, see bash(1) RESTRICTED SHELL
If bash is started with the name rbash, or the -r option is supplied at invocation, the shell becomes restricted. A restricted shell is used to set up an environment more controlled than the standard shell. It behaves identically to bash with the exception that the follow- ing are disallowed or not performed: o changing directories with cd o setting or unsetting the values of SHELL, PATH, ENV, or BASH_ENV o specifying command names containing / o specifying a file name containing a / as an argument to the . builtin command o specifying a filename containing a slash as an argument to the -p option to the hash builtin command o importing function definitions from the shell environment at startup o parsing the value of SHELLOPTS from the shell environment at startup o redirecting output using the >, >|, <>, >&, &>, and >> redirection operators o using the exec builtin command to replace the shell with another command o adding or deleting builtin commands with the -f and -d options to the enable builtin command o using the enable builtin command to enable disabled shell builtins o specifying the -p option to the command builtin command o turning off restricted mode with set +r or set +o restricted. These restrictions are enforced after any startup files are read. When a command that is found to be a shell script is executed, rbash turns off any restrictions in the shell spawned to execute the script. SEE ALSO
bash(1) GNU Bash-4.0 2004 Apr 20 RBASH(1)
All times are GMT -4. The time now is 01:38 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy