当前位置:  技术问答>linux和unix

为什么cron定时作业无效

    来源: 互联网  发布时间:2016-06-02

    本文导语:  有一个用户opt(/home/opt),在目录(/home/opt/shell)下有两个shell文件a和b 编辑crontab -e结果: 0 0 * * * /home/opt/shell/a 0 0 * * 1 /home/opt/shell/b 一直正常 现在在shell目录下添加另一个shell文件c 编辑crontab -e结果: 0 0 *...

有一个用户opt(/home/opt),在目录(/home/opt/shell)下有两个shell文件a和b
编辑crontab -e结果:
0 0 * * * /home/opt/shell/a
0 0 * * 1 /home/opt/shell/b
一直正常

现在在shell目录下添加另一个shell文件c
编辑crontab -e结果:
0 0 * * * /home/opt/shell/a
0 0 * * 1 /home/opt/shell/b
0 0 * * * /home/opt/shell/c
其中a和b还是可以正常执行,只有新添加的c脚本无法执行
手动运行/home/opt/shell/c是可以的

昨天一直没有研究出来,所以想请问大家我的问题是出在哪里了?
谢谢

|
是不是脚本中使用的什么环境变量,crontab执行的时候能带入的环境很少,如果用到了什么环境变量,很容易造成crontab不能正常启动,在脚本中加载一下环境变量应该就可以了,比如source $HOME/.bash_profile

另外楼主为什么不这么写呢,0 0 * * 1 /bin/sh /home/opt/shell/b 

|
我在实际测试过程中就发现,如果是java或使用到了数据库之类的东西,我们在$HOME/.bash_profile都会添加环境,使用crontab启动的时候,如果不在脚本中重新加载环境,程序是启不来的,我们这个项目就碰到了这个问题,哪怕是我们在$HOME/.bash_profile中声明一个类似于WORK_PATH之类的东西,使用crontab启动程序的时候,如果不加载环境,程序就会报错,特别是在脚本当中使用环境

|
脚本只有echo "test"
你怎么知道它没有执行啊

你的问题多半是环境的问题
比较好的解决方法是不要直接执行,用
su - -c 脚本 用户名
来执行它,这样环境就和你平时一样了
这个需要root来设置,可以用root来执行后面的用户名不需要加

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • cron里配置的任务在每次cron再次调用前 会自动杀掉么?
  • cron定时问题,如何删除或覆盖以前的cron命令?
  • cron一个脚本无法执行???请高手指点。。。。急。。。。。。。。。。。。。
  • 急问cron机制方面的问题。
  • cron定期执行问题
  • crontab和cron.d目录下的文件有什么不同?
  • 请问Redhat 7.2在刚装好时,在/etc/cron.daily/下都有什么文件,日期怎样?急!!!
  • 关于使用cron不能创建文件
  • 任务调度框架 cron4j
  • 有关Linux下cron的使用!!!
  • 这个cron怎样写
  • ▲▲▲▲▲如何设置cron的环境变量▲▲▲▲▲
  • 关于Unix Cron 和Oracle的问题
  • 用Cron定时调用svn up 失效
  • 哪位仁兄教导我一下cron守护程序
  • 关于cron问题
  • 在unix环境下能否通过程序来改变cron的内容?
  • cron服务是由哪个程序来实现的?
  • freebsd 中 cron问题急
  • 关于cron调度


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3