Solved

crontab not executing

Posted on 2014-04-06
8
420 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
Netscaler Common Configuration How To guides

If you use NetScaler you will want to see these guides. The NetScaler How To Guides show administrators how to get NetScaler up and configured by providing instructions for common scenarios and some not so common ones.

 
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

NAS Cloud Backup Strategies

This article explains backup scenarios when using network storage. We review the so-called “3-2-1 strategy” and summarize the methods you can use to send NAS data to the cloud

Question has a verified solution.

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

Hello fellow BSD lovers, I've created a patch process for patching openjdk6 for BSD (FreeBSD specifically), although I tried to keep all BSD versions in mind when creating my patch. Welcome to OpenJDK6 on BSD First let me start with a little …
A metadevice consists of one or more devices (slices). It can be expanded by adding slices. Then, it can be grown to fill a larger space while the file system is in use. However, not all UNIX file systems (UFS) can be expanded this way. The conca…
Learn how to find files with the shell using the find and locate commands. Use locate to find a needle in a haystack.: With locate, check if the file still exists.: Use find to get the actual location of the file.:
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.

831 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