• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 438
  • Last Modified:

crontab not executing

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
sakthikumar
Asked:
sakthikumar
  • 4
  • 4
3 Solutions
 
omarfaridCommented:
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
 
sakthikumarAuthor Commented:
Which environment variables i need to set.?
 I have given 777 privs to user.
how can I get / identify the full path.
0
 
omarfaridCommented:
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
The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

 
omarfaridCommented:
For you to get the full path name for commands, you may run command

which sqlplus

which mailx
0
 
sakthikumarAuthor Commented:
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
 
sakthikumarAuthor Commented:
I am a beginner in unix, please tell me exactly where should I execute what commands to get it right..
0
 
sakthikumarAuthor Commented:
Thank you very much Omar, I got it atlast.
0
 
omarfaridCommented:
Welcome :)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: Microsoft Windows 7 Basic

This introductory course to Windows 7 environment will teach you about working with the Windows operating system. You will learn about basic functions including start menu; the desktop; managing files, folders, and libraries.

  • 4
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now