免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2498 | 回复: 6
打印 上一主题 下一主题

cron执行脚本问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-10-11 12:57 |只看该作者 |倒序浏览
有一个脚本,/com/govExchage.sh,如下
cd /
/opt/IBMJava2-141/bin/java com.zjdii.exchange.govfolderDown > /tmp/govfolderDown.log
/opt/IBMJava2-141/bin/java com.zjdii.xml.jdom.xmlRead > /tmp/xmlRead.log
if [ "$(/bin/ls -A /opt/govfolderExchange/govfolder/down)" ]; then
    cd /opt/govfolderExchange/govfolder/down
    cp * ../archive/
    rm -f *
fi

用手工可以执行:[root@localhost root]# /com/govExchage.sh
放到crontab,每分钟执行这个脚本,就报错
[root@localhost root]# crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.2440 installed on Wed Oct 11 12:39:25 2006)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
00 23 * * * /home/db2inst1/cron1.sh
00 02 * * * /home/db2inst1/offbak.sh
* * * * * /com/govExchage.sh

但放到crontab里报错:
From: root@localhost.localdomain (Cron Daemon)
To: root@localhost.localdomain
Subject: Cron <root@localhost> /com/govExchage.sh
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>

The java class is not found:  com/enterprisedt/net/ftp/FTPMessageListener
Exception in thread "main" java.lang.NoClassDefFoundError: org/jdom/input/SAXBuilder
        at com.zjdii.xml.jdom.xmlRead.main(xmlRead.java:24)

报错说的是找不到类,我想是不是在cron里执行时的路径不对了,因为X-Cron-Env: <HOME=/root>
但我在脚本里还是强行进行了cd /的命令,大家帮忙看看吧

论坛徽章:
0
2 [报告]
发表于 2006-10-11 13:28 |只看该作者
我注意到一个问题:
cron下的脚本执行的用户都是在没登陆状态下执行的,少了很多系统里 设置的环境变量的值
所以我在/com/govExchage.sh里又加入了/etc/profile里的一些设置,如:
export JAVA_HOME=/opt/IBMJava2-141
export PATH=$JAVA_HOME/binPATH
export CLASSPATH=$CLASSPATH:/com/jdomLib/jdom.jar:/com/jdomLib/jaxen-jdom.jar:/com/jdomLib/xml-apis.jar:/com/jdomLib/xerces.jar:/com/jdomLib/ant.jar:/com/jdomLib/xalan.jar:/com/jdomLib/jaxen-core.jar:/com/jdomLib/saxpath.jar:/com/zjdii/exchange/edtftpj.jar:/com/zjdii/exchange/junit.jar:/com/zjdii/mail/db2java.jar:/com/zjdii/mail/activation.jar:/com/zjdii/mail/mail.jarJAVA_HOME/lib/tools.jarJAVA_HOME/lib/dt.jar:.
但好像还是出错

论坛徽章:
0
3 [报告]
发表于 2006-10-11 13:35 |只看该作者
我估计是找到解决方法了
我在/com/govExchage.sh第一行加入
source /etc/profile
因为,/etc/profiel里又我需要的设置,如export JAVA_HOME=/opt/IBMJava2-141等

论坛徽章:
0
4 [报告]
发表于 2006-10-11 14:17 |只看该作者

好像

好像crontab不能执行复杂shell吧
只能执行简单的shell

这种说法对吗?

论坛徽章:
0
5 [报告]
发表于 2006-10-11 15:08 |只看该作者
有这种说法?
只要环境变量设置正确就可以了阿

论坛徽章:
0
6 [报告]
发表于 2006-10-11 17:18 |只看该作者
与你的环境变量和你的目录结构有关系
自己在仔细检查一下

论坛徽章:
0
7 [报告]
发表于 2006-10-12 11:04 |只看该作者
晚上作了测试,表明我的猜想是对的,只要在/etc/profile里正确设置了环境变量,然后在脚本里加入source /etc/profile,就可以在cron里执行了,谢谢大家的关注
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP