Sponsored Content
Top Forums Shell Programming and Scripting Using Expect for the first time Post 303025424 by gull04 on Friday 2nd of November 2018 08:13:38 AM
Old 11-02-2018
Hi,

I do this using two quickly hacked together scripts as follows - please bear in mind that these scripts are running on Solaris 11 and things are done this way to avoid a problem. But the scripts should be easily adaptable.

Script 1

Code:
for USER in `cat $DATADIR/name_list.txt | awk -F: '{ print $1 }'`
        do
if [ ! -d /export/home/${USER} ]
        then
                echo "The home directory for ${USER} does not exist - create."
                mkdir -p /export/home/${USER}
                if [[ $? -eq "0" ]]
                then
                        useradd -c"XXX Support User" -d/export/home/${USER} ${USER}
                        if [[ $? -eq "0" ]]
                        then
                                echo "Account for user ${USER} Created."
                        else
                                echo "Accounr for user ${USER} could not be created."
                        fi
                else
                        echo "The Account for ${USER} either already exists or could not be setup."
                fi

                echo "Setting the ownership for /export/home/${USER}"
                chown ${USER}:staff /export/home/${USER}
                if [[ $? -eq "0" ]]
                then
                        echo "The ownership of /export/home/${USER} wasx successfully set."
                else
                        echo "There was a problem setting the ownership on /export/home/${USER}"
                fi
                echo "Setting the password for ${USER}"
                echo ${USER} >> $DATADIR/added_users.txt
                ${BINDIR}/set_pw.sh ${USER} Ch4ng3me
        else
                echo "The user ${USER} already exists."
fi
done

Script 2

Code:
#!/usr/bin/expect

set username [lindex $argv 0];
set newpass [lindex $argv 1];


# opem shell
spawn $env(SHELL)
# send passwd command
send "passwd $username\n"
expect "New Password:"
send "$newpass\n"
expect "Re-enter new Password:"
send "$newpass\n"
expect eof"
expect "# "
send "exit\n"

I would suggest that you modify the expect script to suit your environment and call it from your main script passing the variables as I do - it's easier that way I think.

Regards

Gull04
This User Gave Thanks to gull04 For This Post:
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Long time since I used "expect"

Hello all, It's been a few years since I touched 'expect' and just got it on my system. In the past, I could simply do the following: (this is just a simple example) $ expect $ ls -l $ pwd $ exit ...then a default script name would be placed in my working directory. At this point I... (2 Replies)
Discussion started by: scriptosaurus
2 Replies

2. Shell Programming and Scripting

Expect and auto expect command

I need to run a remote application(GUI) in a client.i.e on running a script in the client machine i should get the GUI application which is running in the server by providing password through the script.Will expect or autoexpect command suit for this scenario? could anyone help me by posting some... (0 Replies)
Discussion started by: arun_v
0 Replies

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

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

5. Shell Programming and Scripting

Expect - Comparison of expect value and loop selection

Hello All, I am trying to automate an installation process using expect and sh script. My problem is that during the installation process the expected value can change according to the situation. For Example if this is a first time installation then at step 3 I'll get "Do you want to accept... (0 Replies)
Discussion started by: alokrm
0 Replies

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

7. Shell Programming and Scripting

Expect script to suspend expecting for a time period.

I have a simple Expect script to power a system on and off in an endless loop looking for an ERROR message at which point the script should exit. But I need to skip the first 60 seconds after each power on or off and not exit if there are ERROR messages during that time. I thought I could use... (0 Replies)
Discussion started by: David_Gilhooly
0 Replies

8. Shell Programming and Scripting

Expect script idles for a long time

the following code works sometimes. other times, it behaves mysteriously. when the script sshs to a box, it is suppose to automatically begin running the command it is told to run. but in this case, after this script logs into a host, it just sits there at the prompt and does not run the... (1 Reply)
Discussion started by: SkySmart
1 Replies

9. 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
DROPUSER(1)						  PostgreSQL Client Applications					       DROPUSER(1)

NAME
dropuser - remove a PostgreSQL user account SYNOPSIS
dropuser [ options... ] [ username ] DESCRIPTION
dropuser removes an existing PostgreSQL user and the databases which that user owned. Only users with usesuper set in the pg_shadow table can destroy PostgreSQL users. dropuser is a shell script wrapper around the SQL command DROP USER [drop_user(7)] via the PostgreSQL interactive terminal psql(1). Thus, there is nothing special about removing users via this or other methods. This means that the psql must be found by the script and that a database server is running at the targeted host. Also, any default settings and environment variables available to psql and the libpq front-end library do apply. OPTIONS
dropuser accepts the following command-line arguments: username Specifies the name of the PostgreSQL user to be removed. This name must exist in the PostgreSQL installation. You will be prompted for a name if none is specified on the command line. -e --echo Echo the queries that dropuser generates and sends to the server. -i --interactive Prompt for confirmation before actually removing the user. -q --quiet Do not display a response. createuser also accepts the following command-line arguments for connection parameters: -h host --host host Specifies the host name of the machine on which the server is running. If host begins with a slash, it is used as the directory for the Unix domain socket. -p port --port port Specifies the Internet TCP/IP port or local Unix domain socket file extension on which the server is listening for connections. -U username --username username User name to connect as (not the user name to drop) -W --password Force password prompt (to connect to the server, not for the password of the user to be dropped). ENVIRONMENT
PGHOST PGPORT PGUSER Default connection parameters DIAGNOSTICS
DROP USER All is well. dropuser: deletion of user "username" failed Something went wrong. The user was not removed. If there is an error condition, the backend error message will be displayed. See DROP USER [drop_user(7)] and psql(1) for possibilities. EXAMPLES
To remove user joe from the default database server: $ dropuser joe DROP USER To remove user joe using the postmaster on host eden, port 5000, with verification and a peek at the underlying query: $ dropuser -p 5000 -h eden -i -e joe User "joe" and any owned databases will be permanently deleted. Are you sure? (y/n) y DROP USER "joe" DROP USER SEE ALSO
createuser(1), DROP USER [drop_user(7)] Application 2002-11-22 DROPUSER(1)
All times are GMT -4. The time now is 02:49 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy