原因: crontab 没有去读环境变量,需要再脚本中手动引入环境变量,可以用source 也可以用export 写死环境变量。
案例:
用crontab定时执行一个脚本,这个脚本完成执行java程序的功能; 在用sh 手动执行脚本时能正常执行,但是用crontab定时器手动执行就没有输出。
1) 后来查看定时任务,没有将错误输出打印到日志中,需要加上 2>&1;
2) 脚本中没有设置java环境变量,导致提示:Unsupported major.minor version 51.0; 后来引入java环境变量,定时任务就能执行成功了。
https://www.cnblogs.com/gmq-sh/p/6971588.html 也可通过这里面用source将环境变量配置文件引入。
crontab的任务执行日志可以在 /var/spool/mail/.. 下面查看;
* * * * * sh /home/test.sh | tee -a /home/test.log 2>&1