crontab 施行shell脚本

crontab 执行shell脚本
这几天用cron定期运行一个监测脚本(shell实现的)用来监测程序是否允许正常。
结果是这个shell脚本单独可以运行,但是crontab执行时,通过查看 /var/logs/message日志
发现这个shell脚本被执行了。但是没有任何效果(没有起到监测的作用)

最后发现原来是环境变量的问题。解决办法如下:

在终端下输入:
myaniu:~#env


从显示的结果中拷贝 PATH定义
MAIL=/var/mail/root
PATH:/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/opt/kde3/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:.
CPU=x86_64


编辑shell脚本,在文件的开头加入刚刚拷贝的PATH定义,并加入export导出代码。
PATH=/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/b
in:/usr/games:/opt/kde3/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:.
export $PATH


并去掉类似这样的代码
#!/bin/sh

这样处理之后,这个shell脚本就可以在cron中执行了。
1 楼 waiting 2010-10-27  
为何要去掉#!/bin/sh  呢?