chpasswd 在 cronjob 中调用时是未知命令?



我对以下内容感到好奇:

我有一个 bash 脚本,它通过 cronjob 每月执行一次。以下行在通过 cronjob 运行时给出错误"未知命令":

echo $P | chpasswd

当我直接执行 bash 脚本时,它工作正常。

有人有想法吗?

将评论转换为答案。

为您的cron工作提供PATH是什么?chpasswd存储在哪里?由于存储chpasswd的目录未在cron提供的路径中列出,因此无法找到它。你得到一个非常有限的环境与cron;运行任何最不寻常的事情都意味着需要非常小心。

cron作业运行的脚本中更完整地设置 PATH,或者指定不在/bin/usr/bin中的命令的绝对路径名。

顺便说一下,您如何设置echo回声P?它不是每个月都设置相同的值吗?这是明智的吗?

Stack Overflow上还有许多其他关于从cron作业运行命令的困难的问题。 其中,请参阅 Bash 脚本未在cron中正确运行和 Perl 脚本工作但不通过cron和 对cron执行的命令是否有特殊限制?,仅举三例。

最新更新