crontab java 环境变量_crontab读取环境变量方法

crontab如果不注意的话早晚会出问题,而且这种问题一旦出一次,就会永远记得,因为这种问题很折腾人。——某前辈设置了一个crontab30 0 * * * cd /home/work/user/huangbx/research/getfeature/data/current; sh resample.sh &>/dev/null$sh resample.sh是可以运行的$head -5 resample.sh##对事实数据进行采样set -xg_date=`date -d "3 days ago " +%Y%m%d`可是放到crontab里面就无法运行了。从网上了解到一般crontab无法运行的问题都是由环境变量在crontab中不一定可识别引起的。可是resample.sh中并没有涉及环境变量的使用。经过多番尝试,终于发现是代码的第一行的中文注释引起的问题,添加上#!/bin/sh后就可以运行了。总结了一下:crontab中必须十分注意环境变量的使用#!/bin/sh并不是必须,只是当没有sha-bang的时候,也不要在第一行有"#"后带的中文注释!!最好当然是加上sha-bang啦 #!/bin/sh2008-11-3补充:之前没有特别注意环境变量引起的crontab失败,今天果然就遇到了。问题描述:cron了某sh文件,里面执行多个操作,既调用了外部的shell脚本,也调用了外部的python脚本。从运行日志看,发现部分脚本被调用,而部分python脚本没有被调用。没有被调用的均是python脚本,而且均使用了MySQLdb模块(第三方模块)。该脚本在平时直接使用sh命令均可以正常执行。出错信息:Traceback (most recent call last):File "areafile.py", line 2, in import MySQLdbFile "build/bdist.linux-x86_64/egg/MySQLdb/__init__.py", line 19, in File "build/bdist.linux-x86_64/egg/_mysql.py", line 7, in File "build/bdist.linux-x86_64/egg/_mysql.py", line 6, in __bootstrap__ImportError: libmysqlclient.so.15: cannot open shared object file: No such file or directoryMySQLdb需要调用mysql这个库,可是系统并不知道你的mysql安装在哪里 : (问题解决:在总控的shell脚本中添加一句话export LD_LIBRARY_PATH=/home/work/local/mysql5/lib/mysql(也就是来自~/.bash_profile中的LD_LIBRARY_PATH字段)后程序终于可以在crontab中正常

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值