Cron 作业未生成预期的日志文件

Cron 作业未生成预期的日志文件

我正在尝试使用 crontab 执行 shell。cron 作业执行了 shell,但没有生成我需要的日志文件。

这是我用于 cron 的内容:10 * * * * /home/user/3nvo.sh

这是一个具有相同结构的简单外壳:

#! /bin/bash

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/MCMMX
export OH=$ORACLE_HOME
export SHLIB_PATH=$ORACLE_HOME/lib:/usr/lib/Motif1.2
export ORACLE_SID=MCMMX
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export TMPDIR=/tmp
export DESA_HOME=/home/manager
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
export FECHA=`date +"%d-%m-20%y_%H:%M:%S"`
PATH=$PATH:.:/opt/bin:$ORACLE_HOME/bin:/bin:/usr/bin:/usr/ccs/bin:/usr/sbin:/opt/perl:/opt/p    erl/bin:/usr/kerberos/bin
ERROR="error_carga_nextone_$FECHA.log"
WARNING="warning_$FECHA.log"
DUMMY="dummy.txt"

if [ -r $DUMMY ]; then
    echo "you have an instance open" >> $WARNING
else
    echo "rest of the shell script"
fi >& carga_$FECHA.log

当 cron 作业启动时,shell 会执行,并生成日志 WARNING,但不会生成位于 if 语句末尾的日志 carga_$FECHA.log。我尝试添加 2>> carga_$FECHA.log,它会向我发送一封包含日志文件内容的电子邮件,然后是以下内容:

X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin>
X-Cron-Env: <HOME=/home/ecabanas>
X-Cron-Env: <LOGNAME=ecabanas>
X-Cron-Env: <USER=ecabanas>

答案1

请记住,除了少数几个环境变量外,cron 启动时几乎没有设置任何环境变量。看起来您依赖的是在环境中设置的变量并不在您的 cron 环境中。

您必须更改 cron 脚本,以设置您正在使用的所有变量(不是列出的五个)的定义。抱歉,情况就是这样。

相关内容