手动在CentOS中执行sh脚本,调用java程序,一切正常;

将该sh加入crontab中定时调度之后,挂了,完全没有执行到的感觉啊!!!

查看crontab执行日志:

cat /var/log/cron

有执行记录,擦擦擦~~~

难道用crontab调用执行会报错,打印日志先:

crontab -e

40 10 * * * /home/job.sh 2>>/home/log

再调度一次,查看日志:

cat /home/log

还真报错了:

Exception in thread "main" java.lang.ClassFormatError: SystemInfo (unrecognized class file version)

...

TMD,不能识别的java版本,大胆的怀疑crontab用的环境变量是他自个的:

cat /etc/crontab

果然,crontab自己有一个PATH变量,修改之:

vim /etc/crontab

重新用crontab调用程序,报错依旧,重启之:

service crond restart

再调用,继续报错,难道crontab的PATH是个摆设!

google之,baidu之,原来这是个坑人无数的问题,以下是查到的一些有用的资料:

http://xiachaofeng.iteye.com/blog/1405184

今天遇见一个问题,crontab的定时任务不能自动执行,但是手动执行脚本一直能成功。查到最后,发现是脚本里用了系统的环境变量。下面开始解释:

0 * * * * . /etc/profile;/bin/sh /var/www/java/audit_no_count/bin/restart_audit.sh

2)
每条 JOB 执行完毕之后,系统会自动将输出发送邮件给当前系统用户。日积月累,非常的多,甚至会撑爆整个系统。所以每条 JOB
命令后面进行重定向处理是非常必要的: >/dev/null 2>&1 。前提是对 Job
中的命令需要正常输出已经作了一定的处理,
比如追加到某个特定日志文件。
3)当crontab突然失效时,可以尝试/etc/init.d/crond restart解决问题。或者查看日志看某个job有没有执行/报错tail -f /var/log/cron。
4)千万别乱运行crontab -r。它从Crontab目录(/var/spool/cron)中删除用户的Crontab文件。删除了该用户的所有crontab都没了。
5)在crontab中%是有特殊含义的,表示换行的意思。如果要用的话必须进行转义\%,如经常用的date ‘+%Y%m%d’在crontab里是不会执行的,应该换成date ‘+\%Y\%m\%d’`。

3.crontab中的输出配置

crontab中经常配置运行脚本输出为:>/dev/null 2>&1,来避免crontab运行中有内容输出。

shell命令的结果可以通过‘> ’的形式来定义输出

/dev/null 代表空设备文件  

> 代表重定向到哪里,例如:echo "123" > /home/123.txt 

1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"

2 表示stderr标准错误

  & 表示等同于的意思,2>&1,表示2的输出重定向等同于1 

那么重定向输出语句的含义:

1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,不显示任何信息。

2>&1 表示标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。

最新文章

  1. mysql设置远程访问权限
  2. 第三章 Git使用入门
  3. Jena Fuseki 102
  4. 【 D3.js 入门系列 --- 2 】 如何使用数据和选择元素
  5. HTML新特性之一----canvas
  6. isMobile 一个简单的JS库,用来检测移动设备
  7. Android Handler使用实例
  8. DOS命令中出现空格问题
  9. proxy 出现乱码问题解决 lua
  10. 重新想象 Windows 8 Store Apps (24) - 文件系统: Application Data 中的文件操作, Package 中的文件操作, 可移动存储中的文件操作
  11. 打印Ibatis最后,SQL声明
  12. Jeffrey Richter's Power Threading Library
  13. http请求 302解决方法
  14. JSP中使用Taglib
  15. Linux修改IP永久生效
  16. Httpclient post请求
  17. antlr v4 使用指南连载4——词法规则入门之黄金定律
  18. javascript之DOM编程增加附件
  19. sqlalchemy常用
  20. Java Mybatis实现主从同步

热门文章

  1. Matlab实现加性高斯白噪声信道(AWGN)下的digital调制格式识别分类
  2. homework-03 扑街。。
  3. Qt窗体关闭时,如何自动销毁窗体类对象
  4. C++设计模式——代理模式
  5. 轻松解决在一个虚拟主机上运行多个 ASP.NET 网站应用
  6. TFS更新
  7. 【转载】openldap 备份与导入 及相关问题--扩展
  8. C#和asp.net执行外部EXE程序
  9. SQL Server 动态管理视图(DMVs)
  10. Codeforces Round #109 (Div. 2) E. Double Profiles hash