Linux下用crontab执行定时任务的时候不会读取全局环境变量和当前用户环境变量(/etc/profile、~/.bash_profile),所以会导致手工执行某个脚本时是成功的,但是crontab定期执行有问题。
两种解决办法:
1、在Shell文件里面获取环境变量值的路径写成绝对路径,别用环境变量的路径值。
比如mysql替换成/usr/local/mysql/bin/mysql
2、Shell脚本缺省的#!/bin/bash开头换行
#!/bin/bash. /etc/profile. ~/.bash_profile