问题: 在shell下执行程序或者脚本都没有问题,但是放到crontab定时任务里以后,发现不能正常执行或者报错,那有可能是这些程序或者脚本依赖于profile里定义的环境变量
解决: 在执行程序或者脚本前先运行profile即可:
$crontab -l
0 0 * * 0 . /etc/profile;. ${HOME}/.profile;cd ${HOME};todo.sh
todo.sh就是你要执行的程序或者脚本;有些程序一定要在$HOME目录下才能执行,所以加上了“cd ${HOME}”