Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 432
  • 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
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
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

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

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