Shell 脚本无法与 cron 配合使用

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 

脚本执行正常,并完成了它应该做的事情。

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

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

脚本根本没有执行。

可能出了什么问题?

答案1

  • 在 cron 任务中执行某些操作时始终使用完整路径
  • 将所有输出、错误重定向到日志文件以查看发生的情况:1 2 * * * /usr/local/bin/1.sh > /var/log/1.log 2>&1

答案2

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

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

否则,运行针对其的解释器:

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

答案3

代替:

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

(你可能需要/bin/bash用任何which bash告诉你的东西来替换)

相关内容