Shell Script

 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Shell Script
# 1  
Old 11-03-2017
Shell Script

Hi All,

I am newbie to Unix and Shell script. Can you please help me to write a script.

Below is my requirement.

1.Send in email every 15 minutes from 12 to 3:30 PM. E-mail should only be sent ONLY when below Query have data return.

2. Email format:
Code:
 To: xyz 
 From: abc
 Email Subject: 
 Email content: <data return from below query>

Query : SELECT * from EMP where DEPT = 87;

Thanks
Vasu
Moderator's Comments:
Mod Comment Please use CODEtags when displaying sample input, output, and code segments (as required by the forum rules you agreed to when you joined the forum).

Last edited by Don Cragun; 11-06-2017 at 05:39 AM.. Reason: Add CODE and ICODE tags.
# 2  
Old 11-03-2017
Quote:
Originally Posted by vasuvv
1.Send in email every 15 minutes from 12 to 3:30 PM. E-mail should only be sent ONLY when below Query have data return.
You do not need to put this into the script as it can be done by cron. I suggest you read the man page of cron and crontab to make yourself acquainted with it.


Quote:
Originally Posted by vasuvv
2. Email format:
I suggest you try to first do the query and then find out if its empty or not. As i do not know your database and your client i don't know what your output will look like in this case.

Anyway, after knowing this you should try to put all the output (in case there is one) into a file. Once you have this, report back here and we can show you how to put it into a mail isntead of a file.

I hope this helps.

bakunin
# 3  
Old 11-06-2017
Hi,

The table is having data. But need to check for every 15 mins whether its having data or not. I have written the script as follow. But giving error invalid number of arguments/file is not avaialeble. Please have a look and correct it.

Code:
FILE="EMP_DETAILS.txt"
#FILE="EMP_DETAILS.$(date +%F_%R).txt"
#touch $FILE

echo $ORACLE_HOME/bin/sqlplus
echo "======== START ============="

#$ORACLE_HOME/bin/sqlplus -s scott/tiger@XE  <<EOF
RESULT=`$ORACLE_HOME/bin/sqlplus -silent ${DB_USER}/${DB_DECRYPTED_PASSWORD}@${DB_CONNECTION_STRING} <<ENDA

set pagesize 0 feedback off verify off heading off echo off
column last_business_date format date
SELECT * from EMP where DEPT = 87; 

exit;
ENDA`

echo $RESULT > $FILE
#sed -i 's/#^/\n/g' $FILE
sed '/#^/G' $FILE
echo "======== END ============="


## READ AND WRITE THE FILE AND TOOK THE BACKUP
#
#FILE1="EMP_DETAILS.$(date +%F_%R).txt"
#{
# while IFS= read -r line
#do
  #  shnfix "$line"
#  done < "$FILE1"
#} > "emp.backup.$(date +%F_%R).txt"

##this will fetch the number of lines in the file
#wc -l  $FILE1
#if [wc -gt 0]; then
mail -s "!!! WARNING File" << $EMP_DETAILS.txt
echo "The IDL  processing has been completed for Business date $BUSINESS_DATE." | mail -s "IDL Processing Status $env" "robin@gmail.com" -- -r "robin@gmail";
#fi


Last edited by MadeInGermany; 11-06-2017 at 03:36 AM.. Reason: Corrected code tag
# 4  
Old 11-06-2017
This is risky, a variable in a command argument that is not in "quotes".
A fix is
Code:
echo "$RESULT" > $FILE

You do not use the variable elsewhere, so try to directly produce the file
Code:
$ORACLE_HOME/bin/sqlplus -silent ${DB_USER}/${DB_DECRYPTED_PASSWORD}@${DB_CONNECTION_STRING} <<ENDA >$FILE
...
ENDA

# 5  
Old 11-06-2017
I know this is commented out, but in case you want to activate it once. This:
Quote:
Originally Posted by vasuvv
Code:
#if [wc -gt 0]; then

will not work, you need spaces around the "[" and "]" and if you want to use a command in that place you need process substitution:

Code:
if [ $(wc -l $FILE) -gt 0 ] ; then

I hope this helps.

bakunin
# 6  
Old 11-06-2017
Quote:
Originally Posted by bakunin
I know this is commented out, but in case you want to activate it once. This:


will not work, you need spaces around the "[" and "]" and if you want to use a command in that place you need process substitution:

Code:
if [ $(wc -l $FILE) -gt 0 ] ; then

I hope this helps.

bakunin
Note that wc -l "$FILE" will give you output similar to:
Code:
   number_of_lines_in_filename filename

which test will not accept as a numeric value. To get just the number of lines in a file in the output from wc you need to make wc read from standard input instead of from a named file:
Code:
if [ $(wc -l < "$FILE") -gt 0 ]; then

This User Gave Thanks to Don Cragun For This Post:
# 7  
Old 11-06-2017
Bakunin,

Here confused with giving FILE1 and "File" can you help me with MAIL command, do we need to give FILE1 or FILE??? getting errors at mailing part too.. pleasr correct me posted code and advise..

---------- Post updated at 05:25 PM ---------- Previous update was at 03:31 PM ----------

Hi,

It is connecting to the database and creating the .txt files but not getting mails. Pleasr help me with this.

Thanks
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Shell script newbie- how to generate service log from shell script

Hi, I am totally a newbie to any programming languages and I just started an entry level job in an IT company. One of my recent tasks is to create a script that is able to show the log file of linux service (i.e. ntpd service) lets say, if I run my script ./test.sh, the output should be... (3 Replies)
Discussion started by: xiaogeji
3 Replies

2. Shell Programming and Scripting

Pass C shell array to another C shell script(csh) and shell(sh)

Dear Friends, Please help me on this my script name is send.csh In this i have written the statement like this set args = ( city state country price ) I want to pass this array to another c shell called receiver.csh. and i want to use it in this c shell or how to pass to... (2 Replies)
Discussion started by: SA_Palani
2 Replies

3. Shell Programming and Scripting

How to write config shell script to pass variables in master shell script?

Dear Unix gurus, We have a config shell script file which has 30 variables which needs to be passed to master unix shell script that invokes oracle database sessions. So those 30 variables need to go through the database sessions (They are inputs) via a shell script. one of the variable name... (1 Reply)
Discussion started by: dba1981
1 Replies

4. UNIX for Dummies Questions & Answers

How to write Config shell script to pass variables in master shell script?

Dear Unix gurus, We have a config shell script file which has 30 variables which needs to be passed to master unix shell script that invokes oracle database sessions. So those 30 variables need to go through the database sessions (They are inputs) via a shell script. one of the variable name... (1 Reply)
Discussion started by: dba1981
1 Replies

5. Shell Programming and Scripting

Unable to pass shell script variable to awk command in same shell script

I have a shell script (.sh) and I want to pass a parameter value to the awk command but I am getting exception, please assist. diff=$1$2.diff id=$2 new=new_$diff echo "My id is $1" echo "I want to sync for user account $id" ##awk command I am using is as below cat $diff | awk... (2 Replies)
Discussion started by: Ashunayak
2 Replies

6. Shell Programming and Scripting

Correct shell script to Call One shell script from another shell script

Hi All, I have new for shell scripting. Problem : I have one scrip at serv1 and path of server is /apps/dev/provimage/scripts and script name:extract_ancillary.bat. I need to call this script at server2(my working server) and execute at server2 . Please let me know how to build the... (5 Replies)
Discussion started by: Vineeta Nigam
5 Replies

7. Shell Programming and Scripting

call another shell script and pass parameters to that shell script

Hi, I basically have 2 shell scripts. One is a shell script will get the variable value from the user. The variable is nothing but the IP of the remote system. Another shell script is a script that does the job of connecting to the remote system using ssh. This uses a expect utility in turn. ... (2 Replies)
Discussion started by: sunrexstar
2 Replies

8. Shell Programming and Scripting

How to use ssh execute other shell script on other host (shell script include nohup)?

i want use ssh on the host01 to execute autoexec.sh on the host02 like following : host01> ssh host02 autoexec.sh autoexec.sh include nohup command like follwing : nohup /home/jack/deletedata.sh & after i execute ssh host02 autoexec.sh one the host01. i can't found deletedata.sh... (1 Reply)
Discussion started by: orablue
1 Replies

9. Shell Programming and Scripting

invoking a shell script inside cgi shell script

Hi, I have an HTML form through which I get some text as input. i need to run a shell script say script.sh inside a perl-cgi script named main_cgi.sh on the form input. I want to write the contents of the form in a file and then perform some command line operations like grep, cat on the text... (2 Replies)
Discussion started by: smriti_shridhar
2 Replies

10. Shell Programming and Scripting

How to Run a shell script from Perl script in Parent shell?

Hi Perl/UNIX experts, I have a problem in running a shell script from my perl script (auto.pl). I run the perl script using perl auto.pl from the shell prompt The shell script picks the files in "input" folder and procesess it. The shell script blue.sh has this code. export... (16 Replies)
Discussion started by: hifake
16 Replies
Login or Register to Ask a Question