RE: Trouble running a script with cron

From: Bob Showalter (Bob_Showalter_at_taylorwhite.com)
Date: 12/29/04


To: 'Rafael Morales' <daredevil@bsdmail.com>, beginners@perl.org
Date: Wed, 29 Dec 2004 15:42:57 -0500

Rafael Morales wrote:
> Hi list.
>
> I need to put a script in cron, but this script needs exec some
> Oracle variables for work fine, these variables are:
> export ORACLE_HOME=/oracle/app/product/9.2.0
> export ORACLE_SID=galdb
> export LD_LIBRARY_PATH=/oracle/app/product/9.2.0/lib32
> export NLS_LANG='MEXICAN SPANISH_MEXICO.WE8MSWIN1252'
> export NLS_NUMERIC_CHARACTERS='.,'
>
> However when I try to exec these variables in the script (with
> "system" or "exec"), does not work well, this a part of my script:
>
> #!/usr/bin/perl
> use strict;
>
> system "export ORACLE_HOME=/oracle/app/product/9.2.0";
> system "export ORACLE_SID=galdb";
> system "export LD_LIBRARY_PATH=/oracle/app/product/9.2.0/lib32";
> system "export NLS_LANG=\'MEXICAN SPANISH_MEXICO.WE8MSWIN1252\'";
> system "export NLS_NUMERIC_CHARACTERS=\'.,\'";

This should be written as:

  BEGIN {
     $ENV{ORACLE_HOME} = '/oracle/app/product.9.2.0';
     $ENV{ORACLE_SID} = 'galdb';
     ... and so on ...
  }

The BEGIN { } block is probably needed so the vars are set before the "use
DBD::Oracle" happens.

The system() approach won't work because it only changes the environment
variables in the child process; you need to set the %ENV hash instead.

(But you may want to consider setting the variables in the crontab instead
of here)

HTH



Relevant Pages

  • Trouble running a script with cron
    ... I need to put a script in cron, but this script needs exec some Oracle variables for work fine, these variables are: ... If I run these script manually (without cron) works fine!!!!. ...
    (perl.beginners)
  • SUMMARY: cron entry: nth day of every month?
    ... cron can not handle this with its own syntax. ... 21st but "command" only runs if the output of the "date" command ... What I would suggest is rather than embedding the logic in each script ... The answer is it is _not_ possible to control it only with crontab ...
    (Tru64-UNIX-Managers)
  • Re: Cron Jobs
    ... > having a cron will mean yo server is forced by the script ... > best than allowing mail dequeing by connection. ... > host server so I can get emails for my domain example.com. ...
    (RedHat)
  • [Solved] Long cronjobs terminate after 2 minutes/Ubuntu 8.10
    ... When I run the script in the foreground, it takes about 2 hours to ... Have you got your system set up so that cron sends mail to ... I configured Postfix for local mail only and updated ... I'm assuming that configuring the MTA is what did it. ...
    (Ubuntu)
  • Re: Silent Cron Jobs
    ... afaik cron mails all output from a script. ... cronjob I usually dump all stdout ... To UNSUBSCRIBE, email to debian-user-REQUEST@xxxxxxxxxxxxxxxx ...
    (Debian-User)