Sponsored Content
Top Forums Shell Programming and Scripting How to use 'expect' to pass UID & Password to a "for loop" in shell script? Post 302873695 by Chubler_XL on Tuesday 12th of November 2013 07:06:15 PM
Old 11-12-2013
I haven't found file I/O to be flaky in expect, but I must admit I only really use expect to test solutions posted in the forum. I find it a bit of a hacking tool and would prefer to use passwordless ssh for my own work.

The below script should open the server_list file, connect to each server run the configured command ("multibos -S" in this case) and log the output to a file name config_details with a "hostname:" prefix.

Also note: I'm using telnet in this script and you may want ssh or some other command.

Uncomment the log_user 0 line to suppress output once you have finished debugging.

Code:
#!/usr/bin/expect -f
set timeout 2
set u "souvikm"
set p "passw0rd"
set command "multibos -S"

set hosts [open server_list r]
set config [open config_details w]

#log_user 0

while {[gets $hosts host] >= 0} {
    spawn -noecho telnet $host
    expect "*User_ID*"
    send -- "$u\r"
    expect "?assword*"
    send -- "$p\r"
    send "PS1='PROMPT# '\r"
    expect -re "PROMPT# '(.*)PROMPT# "
    send "$command\r"
    expect -re "\r\n(.*)\r\n(.*)PROMPT# "
    set output $expect_out(1,string)
    puts $config "$host: $output\r"
    send "exit\r"
    expect eof
}
close $hosts
close $config


Last edited by Chubler_XL; 02-25-2017 at 02:26 PM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

shell script & sqlplus "plzz help"

hi friends, i m tryin to load data from one set of table to other i have sql procedure al ready for it..! i m going to load the procedure only if data in one of my table for example table "landing " have 10 records each attribute of this table is file_name status date ... (2 Replies)
Discussion started by: kulbir
2 Replies

2. Shell Programming and Scripting

How to include RETURN KEY with Background process "&" in Shell Script

Hello All, I am a newbie in Shell script programming, and maybe you can help me with my query. I need to write a shell script (mntServer.ksh) that will start a background process and also to be able to run another script. The mntServer.ksh script contains: #!/bin/ksh... (1 Reply)
Discussion started by: racbern
1 Replies

3. Shell Programming and Scripting

ssh through "expect" in shell script

Hi, I am trying to use "Expect" in shell script to ssh and do some work in remote server but I am unable to connect. Here is the code I am using. #save as test.sh set ip "10.10.10.10" set username "uname" set password "upass" spawn ssh $username@$ip expect "Password:" send... (8 Replies)
Discussion started by: shekhar2010us
8 Replies

4. Red Hat

files having Script which works behind "who" & "w" commands

Dear All, plz print the path of files which have the script of "who" & "w" commands. thnx in advance. (6 Replies)
Discussion started by: saqlain.bashir
6 Replies

5. Shell Programming and Scripting

Passing username and password to a script running inside "expect" script

Hi I'm trying to run a script " abc.sh" which triggers "use.sh" . abc.sh is nothing but a "expect" script which provides username and password automatically to the use.sh script. Please find below the scripts: #abc.sh #!/usr/bin/expect -f exec /root/use.sh expect "*name*" send... (1 Reply)
Discussion started by: baddykam
1 Replies

6. Shell Programming and Scripting

Shell script using expect to login to couple of remote servers and read "crontab -l"

I need a shell script using expect to login to couple of remote servers and read "crontab -l -u <username>" & "cat /etc/rc.local" & "df -h" and able to create output into a file saved locally with hostname.crontab & hostname.rc.local & disk.status. I can supply a file as list of hostname or IP... (4 Replies)
Discussion started by: jaipsharma
4 Replies

7. AIX

How to use 'expect' to pass UID & Password to a "for loop" in shell script?

Friends, Need someone's help in helping me with the below requirement for a script: > For a list of servers(over 100+), I need to login into each of them(cannot configure password-less ssh) & grab few configuration details < I know, this is possible through expect programming in a simple... (2 Replies)
Discussion started by: thisissouvik
2 Replies

8. Shell Programming and Scripting

How to pass password to "su account" in script?

Hi, I need to run a test script to check all test accounts, is it possible to pass the password to su in following command? I've got following error: $ echo "${password}" | su ${test_account} -c "check_account.sh" standard in must be a tty Thank you. - j (3 Replies)
Discussion started by: hce
3 Replies

9. Shell Programming and Scripting

Can someone please show me a very simple "expect" script to change password in Solaris please?

Ladies & Gents, Can one of you gurus please show me a very simple "expect" script to change the password in Solaris in a script, please? Nothing fancy, no error checking, no nothing. Just to change the password of a new user, it's all. Many thanks in advance. U guys have honestly earned my... (1 Reply)
Discussion started by: Hiroshi
1 Replies

10. Shell Programming and Scripting

Expect: spawn id exp5 not open while executing "expect "$" { send "sudo su -\r" }"

Hi All, i am trying to ssh to a remote machine and execute certain command to remote machine through script. i am able to ssh but after its getting hung at the promt and after pressing ctrl +d i am gettin the out put as expect: spawn id exp5 not open while executing "expect "$" {... (3 Replies)
Discussion started by: Siddharth shivh
3 Replies
runtest(1)						      General Commands Manual							runtest(1)

NAME
runtest - the DejaGnu test driver program SYNOPSIS
runtest [ options ] DESCRIPTION
DejaGnu is a framework for running test suites on GNU tools. It is written in expect, which uses TCL (Tool command language). runtest is the test driver program; use it to control what tests to run, and variations on how to run them. You can find a comprehensive description of DejaGnu and runtest in The DejaGnu Testing Framework or its Info version, dejagnu.info. OPTIONS
--all Print all test output to screen. By default, only unexpected results are displayed. --baud rate Set the baud rate for a serial line connection. Some serial interface programs (like tip) don't use this value but instead use a separate initialization file. --connect type The type of connection to use. The choices are rlogin, telnet, rsh, kermit, tip and mondfe. --debug Turn on expect internal debugging output. All output is logged to a file called dbg.out. The output of the --strace also goes into this file. --help Prints out a help screen and then exits. --host type The configuration string for the host. --ignore test1.exp test2.exp ... Do not run the specified tests. Electronic mail addresses to receive test results. --name hostname The network hostname of the target board. --objdir path path is a directory containing compiled test code. --outdir directory The name of a directory for test log output. --reboot Reboot the target board when runtest initializes (if supported). --srcdir path path is a directory containing test directories. --strace N Turns on expect internal tracing to N levels deep. --target type The configuration string for the target. --tool toolname Specify the tool to be tested. toolname controls the test suite applied, and the associated initialization module. --verbose, -v Turns on more debugging output from test cases and DejaGnu utility code. Use more than once to increase output further. --version, -V Prints out the versions of DejaGnu, expect and Tcl. -D[number] Activate the Tcl debugger.number can be either 1 or 0. If it is 1, then the expect shell will break when it starts to run. All ^C's drop DejaGnu back to the debugger prompt. A 0 starts DejaGnu like normal, but a ^C drops to the debugger prompt. Any file name on the command line is assumed to be a subset of the test names to run. Usually these are the names of the expect test driver, ie... special.exp. Makefile style variables are used to specify tool names and their flags; these and other configuration dependent values are saved in the file site.exp, created during configuration. EXIT CODES
runtest sets the exit code to 1 if any of the tests failed, or sets it to 0 if all the tests passed. SEE ALSO
The DejaGnu Testing Framework (dejagnu.info). This is the DejaGnu manual; its source is the SGML files doc/*.sgml. in the DejaGnu distri- bution. AUTHOR
Rob Savoye (rob@welcomehome.org) 08 Dec 1998 runtest(1)
All times are GMT -4. The time now is 10:08 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy