从 cron 脚本运行时未找到“/usr/bin/env bash”

从 cron 脚本运行时未找到“/usr/bin/env bash”

我的 crontab 中有这个:

PATH=/usr/bin:/usr/local/bin:$PATH
*/1 * * * * /usr/bin/env bash > ~/cron.log 2>&1

输出cron.log如下:

/usr/bin/env bash: No such file or directory

/usr/bin/env以及/bin/bash两者都存在。我还可以从此 crontab 所属的同一用户运行此命令,没有任何错误。我还尝试添加

SHELL=/bin/bash

到 crontab 的顶部。没有效果。不知道发生了什么。还有这个:

*/1 * * * * which bash > ~/cron.log 2>&1

日志文件中什么都没显示。这是我在 crontab 中为该用户保存的所有内容,没有其他内容。

答案1

由于运行的脚本以(cron开头#!/usr/bin/env bash正确的?),您需要做的就是crontab

*/1 * * * * /path/to/script > ~/cron.log 2>&1

并确保脚本确实输出了一些东西;如果你的脚本完全没有输出,那么你的日志文件将要为空。

答案2

事实证明我不应该写这句话:

PATH=/usr/bin:/usr/local/bin:$PATH

从 crontab 中删除它可以解决问题。

答案3

我不确定你到底想做什么,但对我来说:

# which bash
/bin/bash

因此尝试

/usr/bin/env /bin/bash /path/to/some/script > ~/cron.log 2>&1

相关内容