Sponsored Content
Top Forums Shell Programming and Scripting Running remote shell script containing sql statements Post 302073629 by x96riley3 on Tuesday 16th of May 2006 09:58:35 AM
Old 05-16-2006
This type of stuff seems to just keep coming back. People want to run scripts remotely. I've tried every way I can think of and this is the best way. You not only get functionality but you get security as well. Every Unix environment needs a way to issue shell scripts, perl script, SQL scripts to remote servers. I have posted the following example already but I will do it again. Everytime I go to a new company the first thing I do is build an issuance process. A way to issue script remotely outside of using some scheduler like Maestro or Control -m.





This is really a multi step process. You need to setup SSH correctly and create a key pair and passphrase. Then you need to load your keys into the SSH agent so that you don't get prompted for a passphrase. The SSH agent will handle passing your passphrase to the other systems.

Example:

#ssh-add
Adding identity: /home/tester/.ssh2/id_dsa_1024_defender.pub
Need passphrase for /home/tester/.ssh2/id_dsa_1024_defender.pub
(1024-bit dsa, tester@defender, Sun Apr 30 2000 21:39:13).
Enter passphrase:

#ssh server date
Wed May 10 14:06:57 EDT 2006
#

#Now that you have SSH setup. You can take any script and scp the script to the remote server.



Sample script below
###############################################
#!/bin/sh

LOG="/tmp/MYTEST.log
##################
function if_error
##################
{
if [[ $? -ne 0 ]]; then # check return code passed to function
print "$1 TIME:$TIME" | tee -a $LOG # if rc > 0 then print error msg and quit
exit $?
fi
}

chown root:root /etc/passwd
if_error "Failed chowning /etc/passwd to root:root"

chmod 700 /etc/passwd
if_error "Failed chmoding /etc/passwd to 700"

rm -rf /etc/somedir
if_error "Failed deleting /etc/somedir"
################################################

#Okay..So SSH is working and you got a little test script with the proper error checking in it. Also, I used the tee command to redirect the output of the script to the screen and to a log file in tmp.

scp $USER@$HOST:$PATH/$SCRIPT $USER@$HOST:/tmp/$SCRIPT
ssh -l $USER $HOST chmod 700 /tmp/$SCRIPT
ssh -l $USER $HOST /tmp/$SCRIPT
ssh -l $USER HOST rm /tmp/$SCRIPT

1. Copied script to server
2. Changed permissions
3. Executed script that will write to log file and screen cause I wrote it like that.
4. rm the script


Hope this is helpful.

-X
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Running SQL Scripts from Shell script - Need insight!

I've a script that fetches various values from the database as below: #! /bin/ksh $conn="user/pwd@service_name" `sqlplus -s << $conn EOF1 @xyz.sql @pqr.sql @abc.sql EOF1` The output of the script should generate txt files containing the results from queries which are further... (6 Replies)
Discussion started by: manthasirisha
6 Replies

2. UNIX for Dummies Questions & Answers

Sh Shell Script executing remote SQL queries

Hi there folks, I am trying to execute remote sql queries on an Oracle server. I would like to save the result of the executed sql queries on a text file, and send that text file as an attachment to an email address. Could anyone give me an idea on how the above could be achieved? Any help... (2 Replies)
Discussion started by: Javed
2 Replies

3. UNIX for Dummies Questions & Answers

Running file sql from shell without capture the password

Dear All I have file a.sql, let's say the content is: _________________________________ select * from dual; exit; _________________________________ and I have shell script a.sh, the content is: _________________________________ ORACLE_SID=testing; export ORACLE_SID... (0 Replies)
Discussion started by: Aditya Purwanto
0 Replies

4. Shell Programming and Scripting

Calling SQL LDR and SQL plus scripts in a shell script

Hi- I am trying to achieve the following in a script so I can schedule it on a cron job. I am fairly new to the unix environment... I have written a shell script that reads a flat file and loads the data into an Oracle table (Table1) via SQLLDR. This Works fine. Then, I run a nested insert... (5 Replies)
Discussion started by: rajagavini
5 Replies

5. Shell Programming and Scripting

Looping through a shell script with sql statements

Hello members, I'm working on the Solaris environment and the DB i'm using is Oracle 10g. Skeleton of what I'm attempting; Write a ksh script to perform the following. I have no idea how to include my sql query within a shell script and loop through the statements. Have therefore given a... (4 Replies)
Discussion started by: novice82
4 Replies

6. Shell Programming and Scripting

Running Oracle SQL from shell script

Hi, can anyone help me with this script please. I need the oracle command to go into the unix batch file. #!/bin/sh # A menu driven Shell script which has following options # for acmtoron@> # # # Exit # As per option do the job #---- while : do clear echo " A C M LOG MONITORING... (0 Replies)
Discussion started by: tinaaguilera
0 Replies

7. Shell Programming and Scripting

Running remote system shell script and c binary file from windows machine using java

Hi, I have an shell script program in a remote linux machine which will do some specific monitoring functionality. Also, have some C executables in that machine. From a windows machine, I want to run the shell script program (If possible using java). I tried with SSH for this. but, in... (1 Reply)
Discussion started by: ram.sj
1 Replies

8. UNIX for Dummies Questions & Answers

SQL block in a Shell Script connecting to a local and remote DB

Hi All, In a Shell scriipt with a SQL block I want to issue a query against a local DB and a remote DB on a remote server. The shell script is running locally. This is how I connect to the local server. But I want the query to reference remote table in the join. Question can I specify a... (1 Reply)
Discussion started by: daveu7
1 Replies

9. OS X (Apple)

Quit a shell script thats running on a remote machine

I'm in a situation where I am executing a shell script(Bash) on another machine remotely using ssh, and for various reasons sometimes need to quit it and restart it. The shell script being run does many different things, so its hard to know what process to kill on the remote machine, and even if I... (2 Replies)
Discussion started by: TheDrizzle
2 Replies

10. Shell Programming and Scripting

Running set of commands in remote servers in shell script

Hi Wishing to all. I am very new joined in an organization as a unix system administrator. I need a help in preparing a script for a report. i have a file contains all of the linux/ubuntu servers line by line around 140 servers. vi servers.txt nh01 nh02 nh03 bh01 bh04 - - :wq (3 Replies)
Discussion started by: kumaraswamy
3 Replies
SSH-ADD(1)						    BSD General Commands Manual 						SSH-ADD(1)

NAME
ssh-add -- adds private key identities to the authentication agent SYNOPSIS
ssh-add [-cDdkLlXx] [-t life] [file ...] ssh-add -s pkcs11 ssh-add -e pkcs11 DESCRIPTION
ssh-add adds private key identities to the authentication agent, ssh-agent(1). When run without arguments, it adds the files ~/.ssh/id_rsa, ~/.ssh/id_dsa, ~/.ssh/id_ecdsa and ~/.ssh/identity. After loading a private key, ssh-add will try to load corresponding certificate informa- tion from the filename obtained by appending -cert.pub to the name of the private key file. Alternative file names can be given on the com- mand line. If any file requires a passphrase, ssh-add asks for the passphrase from the user. The passphrase is read from the user's tty. ssh-add retries the last passphrase if multiple identity files are given. The authentication agent must be running and the SSH_AUTH_SOCK environment variable must contain the name of its socket for ssh-add to work. Any keys recorded in the blacklist of known-compromised keys (see ssh-vulnkey(1)) will be refused. The options are as follows: -c Indicates that added identities should be subject to confirmation before being used for authentication. Confirmation is performed by the SSH_ASKPASS program mentioned below. Successful confirmation is signaled by a zero exit status from the SSH_ASKPASS program, rather than text entered into the requester. -D Deletes all identities from the agent. -d Instead of adding identities, removes identities from the agent. If ssh-add has been run without arguments, the keys for the default identities will be removed. Otherwise, the argument list will be interpreted as a list of paths to public key files and matching keys will be removed from the agent. If no public key is found at a given path, ssh-add will append .pub and retry. -e pkcs11 Remove keys provided by the PKCS#11 shared library pkcs11. -k When loading keys into the agent, load plain private keys only and skip certificates. -L Lists public key parameters of all identities currently represented by the agent. -l Lists fingerprints of all identities currently represented by the agent. -s pkcs11 Add keys provided by the PKCS#11 shared library pkcs11. -t life Set a maximum lifetime when adding identities to an agent. The lifetime may be specified in seconds or in a time format specified in sshd_config(5). -X Unlock the agent. -x Lock the agent with a password. ENVIRONMENT
DISPLAY and SSH_ASKPASS If ssh-add needs a passphrase, it will read the passphrase from the current terminal if it was run from a terminal. If ssh-add does not have a terminal associated with it but DISPLAY and SSH_ASKPASS are set, it will execute the program specified by SSH_ASKPASS and open an X11 window to read the passphrase. This is particularly useful when calling ssh-add from a .xsession or related script. (Note that on some machines it may be necessary to redirect the input from /dev/null to make this work.) SSH_AUTH_SOCK Identifies the path of a UNIX-domain socket used to communicate with the agent. FILES
~/.ssh/identity Contains the protocol version 1 RSA authentication identity of the user. ~/.ssh/id_dsa Contains the protocol version 2 DSA authentication identity of the user. ~/.ssh/id_ecdsa Contains the protocol version 2 ECDSA authentication identity of the user. ~/.ssh/id_rsa Contains the protocol version 2 RSA authentication identity of the user. Identity files should not be readable by anyone but the user. Note that ssh-add ignores identity files if they are accessible by others. EXIT STATUS
Exit status is 0 on success, 1 if the specified command fails, and 2 if ssh-add is unable to contact the authentication agent. SEE ALSO
ssh(1), ssh-agent(1), ssh-keygen(1), ssh-vulnkey(1), sshd(8) AUTHORS
OpenSSH is a derivative of the original and free ssh 1.2.12 release by Tatu Ylonen. Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt and Dug Song removed many bugs, re-added newer features and created OpenSSH. Markus Friedl contributed the support for SSH protocol versions 1.5 and 2.0. BSD
October 18, 2011 BSD
All times are GMT -4. The time now is 10:03 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy