在编写一个SHELL程序后,运行时出现了问题.在终端执行是没有问题的.
但是把这个SHELL程序定制到计划任务定点执行,就出问题了.不能产生数据.
代码如下:
for logfiles in /usr/omc/ne_data/ev_logs/ev*
do
ev=`expr "$logfiles" : "...........................\(.\{10\}\).*"`
if [ "$ev" = "ev2006111312" ]
then
evname=`expr "$logfiles" : ".........................\(.\{16\}\).*"`
parsepath="/home/omcadmin/alarm_log/parsed_logs/"$evname
/usr/omc/current/bin/cel $logfiles > $parsepath
echo "ev log "$logfiles" parsed end"
fi
done
在计划任务中定点执行后, 发现只是产生了0K大小的文件,并未产生数据,不明白数据跑哪去了.
计划任务设定为: 30 * * * * sh /home/parselog.sh
后经排查应该是CRON的环境变量不对,但是应该怎样设置环境变量才可以运行呢?
我按照网上一些贴子提供的方法,如在里面直接设置PATH=/.....,都不可行.
而且我使用的是全路径, 为什么还需要环境变量呢?
哪位高手帮忙解答一下?
这么久了,这个沙发还是我自己坐. 本想是个简单的问题, 难道这儿没有人能回答吗?
这儿跟一般的论坛也没啥区别了嘛, 没啥技术含量.
再补充一下,出现的错误为:
ld.so.1: cel: fatal: libmmi.so: open failed: No such file or directory
肯定是程序中 /usr/omc/current/bin/cel 这个东东没找到.
真是奇怪了,全路径都写上了,咋还找不到呢? 这不是睁眼说瞎话嘛.
可能是调用库,结果CRON执行的用户和你默认登陆的用户执行SHELL时候的的环境变量不同。
我建议你在终端执行SHELL时候 ECHO ¥LIB 看看调用库是否默认LIBPATH正确。
在CRON里只能写一个脚本执行,然后在脚本里export $LIB_PATH什么的 呵呵
都是低手 别着急
echo $LIB提示:LIB: Undefined variable
echo $LIB_PATH也是这个提示,变量未定义.
那在前面先定义全部需要的变量咯
在CRONTAB中定义不了变量啊,我定义了后,使用crontable file.cron时失败.
我是这么定义的
把变量加到.profile文件中.
我把变量加到.profile里了, 试了一下, 仍然没起作用.还是不行的.
你先不要用crontab,先在.profile中生效以后,看看运行可以吗?如果正常在在crontab中运行看看.
到shell版去看看吧,那边人比较厉害。这里边的大部分老大搞shell都不太专业。
.profile设置变量后,怎么查看是否已经效了呢?
/usr/omc/current/bin/cel 是什么命令? 你就放到/bin 下看看
/usr/omc/current/bin/cel 是啥东西? 这个命令可能本身就需要设置一些环境参数
我以前做bcp的时候,也是脚本可以执行,加入crontab就不行了
在脚本中加入export SYSBASE就可以了
shell我也只是懂个皮毛,希望对你有帮助
Hope this could help:
how to use command crontab to execute shell file
会员注册
会员登录
个人空间