Solved

crontab not executing

Posted on 2014-04-06
8
421 Views
Last Modified: 2014-04-06
this is my shell

#/bin/ksh

dummy=`sqlplus -s  'sakthi_r/gcp_ro_access@(DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.19.56)(PORT = 1780))
        (CONNECT_DATA =
              (SERVER = DEDICATED)
                    (SERVICE_NAME = DPWGCP)
                        )
                          )'  <<EOF
                          SET HEA OFF PAGES 0
                              select count(*) from gcb_dba.gcb_charge_dtls ;
                             EXIT;
                             EOF`

                          print "${dummy}"

                              if [ "$dummy" -gt 1 ]; then
                                # mailx -s "Something bad happened in production" ITPeople.SakthiKumar@dpworld.com
                                echo "something" | mailx -s "subject" ITPeople.SakthiKumar@dpworld.com
                                    print "1"
                                     fi

                                     sqlplus 'system/system@dcsss'  << EOF

                                         insert into abcd values (1);
                                         commit;
                                         exit;
                                         EOF



and this is my cron tab entry

21,22,23,24,25,26,27,28,29,30,31,45,46,47,48,49,50,51,52,53,54,55 * * * * /home/opctusr1/test/new.ksh >> /home/opctusr1/test/test.log


time of the test.log is changing. but my crontab job is not executing.

when I try to execute normally, it is fine. but only from cron job it is not executing.

Please help me resolve this.
0
Comment
Question by:sakthikumar
  • 4
  • 4
8 Comments
 
LVL 40

Accepted Solution

by:
omarfarid earned 500 total points
ID: 39981146
Please note for crontab scripts, you need to:

1- set all required env variables
2- use full path names to files and dires
3- redirect stdin, stdout, and stderr
4- Make sure that the script is executable

Make sure to run the script with the right user (e.g. oracle)
0
 

Author Comment

by:sakthikumar
ID: 39981161
Which environment variables i need to set.?
 I have given 777 privs to user.
how can I get / identify the full path.
0
 
LVL 40

Assisted Solution

by:omarfarid
omarfarid earned 500 total points
ID: 39981168
Please look in the user's home directory for .profile file and see what env variables ae set. You may set PATH and Oracle env. as example.

One quick way is to run commands like

set

and

env

and see relevant env variables required.


Also, if you don't set PATH then you need to use full path name to commands like sqlplus, mailx, etc.
0
Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
LVL 40

Assisted Solution

by:omarfarid
omarfarid earned 500 total points
ID: 39981169
For you to get the full path name for commands, you may run command

which sqlplus

which mailx
0
 

Author Comment

by:sakthikumar
ID: 39982232
Hi

I have added the below lines in my shell script.

ORACLE_SID=DCSSS
export ORACLE_SID
ORACLE_HOME=/u01/app/oracle/products/OAS/10.2/BI_Forms
export ORACLE_HOME
PATH=$PATH:$ORACLE_HOME/bin
export PATH


But still I am getting the error.
when I tried which sqlplus
/u01/app/oracle/products/OAS/10.2/BI_Forms/bin/sqlplus

In the log, I am getting error.
sqlplus not found
0
 

Author Comment

by:sakthikumar
ID: 39982241
I am a beginner in unix, please tell me exactly where should I execute what commands to get it right..
0
 

Author Comment

by:sakthikumar
ID: 39982253
Thank you very much Omar, I got it atlast.
0
 
LVL 40

Expert Comment

by:omarfarid
ID: 39982261
Welcome :)
0

Featured Post

Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Attention: This article will no longer be maintained. If you have any questions, please feel free to mail me. jgh@FreeBSD.org Please see http://www.freebsd.org/doc/en_US.ISO8859-1/articles/freebsd-update-server/ for the updated article. It is avail…
Why Shell Scripting? Shell scripting is a powerful method of accessing UNIX systems and it is very flexible. Shell scripts are required when we want to execute a sequence of commands in Unix flavored operating systems. “Shell” is the command line i…
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.
In a previous video, we went over how to export a DynamoDB table into Amazon S3.  In this video, we show how to load the export from S3 into a DynamoDB table.

830 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question