Shell脚本不能用于cron

我在/usr/local/1.sh有这个shell脚本

#!/bin/sh wget -r -np --user=peter --password='123' ftp://67.225.87.95/ -p /test/ 

如果我运行它使用

 # sh 1.sh 

该脚本执行正常,做它应该做的事情。

但是,如果我创build一个cron作业来执行完全相同的脚本:

 1 2 * * * /usr/local/bin/1.sh 

该脚本根本不被执行。

什么可能是错的?

  • 在cron工作中做一些事情时,一定要使用完整的path
  • 将所有输出,错误redirect到日志文件,以查看发生了什么: 1 2 * * * /usr/local/bin/1.sh > /var/log/1.log 2>&1

如果要直接运行它而不调用shell解释器,则需要提供适当的权限:

 chmod +x /usr/local/bin/1.sh 

否则,运行解释器对其:

 1 2 * * * /bin/sh /usr/local/bin/1.sh 

更换:

 1 2 * * * /usr/local/bin/1.sh 

通过:

 1 2 * * * /bin/bash /usr/local/bin/1.sh 

要么

收下:

 1 2 * * * /usr/local/bin/1.sh 

并在/usr/local/bin/1.sh以下内容:

 #!/bin/bash 

(你可能需要用什么which bash告诉你的来replace/bin/bash