为什么我的 cron 作业找不到特定命令?

mcl*_*129 1 backup centos ftp cron duplicity

我正在使用双重性通过 FTP 创建我的服务器的夜间备份。我编写了一个脚本,它执行本地和远程备份并记录输出结果。当我以 root 用户身份运行此脚本时,它执行得很好。但是,当我将其设置为 cron 作业并运行它时,脚本会执行但 ftp 部分失败。在我收到一条错误消息“ncftpls - 未找到命令,请安装 ncftp 3.1.9 或更高版本”后不久,但它已安装!是否有某种原因导致 cron 作业无法找到机器上存在的命令?它有自己的 PATH 或类似的东西吗?

任何帮助是极大的赞赏,

麦克风

And*_* M. 5

你用的是绝对路径吗?Cron 作业不会打开交互式 shell,因此通常设置 PATH 的 bash init 脚本(bashrc、bash_profile 等)可能无法运行——如果是的话,它们将使用 root 的,而不是你的。如果您不确定命令在哪里,可以使用which <command>找出绝对路径。

在处理 cron 脚本时,一般的经验法则是,您要么 (a) 想要设置 PATH 要么 (b) 使用绝对路径。

祝你好运!