crontab执行sh脚本Java部分不成功

来源:互联网 发布:淘宝双11外围流量大吗 编辑:程序博客网 时间:2024/06/10 14:21

在脚本最前面加上一句:

source ~/.bash_profile

这样运行环境就一摸一样了。加上这句后,直接执行能成功的脚本放在crontab里都能执行。

所有的crontab问题只有两种可能,

1,环境

2,路径

而第二种问题往往又是第一种问题引起的,所以加上.bash_profile里的环境后99%的问题都一招通杀。

.bash_profile会读取.bashrc

.bashrc 会读取 /etc/bashrc

/etc/bashrc 会读取 /etc/profile

一个Linux所有的系统用户,所有的环境变量,都逃不出以上几个文件。(前提是你用bash)



当使用crontab执行sh脚本时,发现存到数据库的数据丢失了非常多,困惑。。。于是各种搜索,终于找到问题答案,即环境变量问题,解决方法很简单,只需要在脚本开头增加

source ~/.bash_profile 即可。

还有,如果手动执行脚本可以成功运行,但crontab却不行,并且crontab执行脚本时报 Permission denied 错误,则是crontab没有执行脚本的权限,所以可以使用chmod 755 脚本 来授予crontab执行此脚本的权限。

总结下:使用crontab出现的问题基本上是在1.环境变量 2.路径 这两个方面 ,所以以后碰到此类问题,就先解决它


原创粉丝点击