Crontab找不到本地用户的bin目录中安装的程序


2

我试图在执行一些备份操作的dreamhost帐户上运行bash脚本。我用来执行备份的程序安装在Web托管帐户的主目录下~/usr/local/bin/。该路径将同时导出到我.bashrc.bash_profile文件中。当我从bash命令行运行脚本时,一切顺利。

但是,当我使用以下命令在用户的crontab中安装脚本时:

crontab -e -u <user>

crontab日志报告找不到用于执行备份的程序。我已经检查过使用whoami,而crontab实际上是以方式运行的,所以我不确定为什么它无法找到程序的二进制文件。有什么想法吗?


如果只使用会crontab -e怎样?如果您实际上是在尝试编辑其他用户crontab,则将无法在dreamhost的共享主机上执行此操作(尽管您可以在VPS上或专用服务器上使用,但我不知道您为什么要这样做)
泰森

这不是这里的问题。我只是使用-u来运行crontab命令,以便明确。没有跑步就具有相同的效果……
焦虑症

Answers:


1

Dreamhost似乎对crontab具有特殊的有限执行环境。参照crontab执行环境的Dreamhosts Wiki的此页面

“由于安全方面的考虑,DreamHost cron无法在正常环境下执行。”

“ PATH环境变量只是/ usr / bin:/ bin,而SHELL设置为/ bin / sh。您必须为默认PATH中没有的所有命令指定完整路径,并始终为文件指定完整路径。 ”

(源链接上有更多文本和示例,我仅复制/粘贴了最相关的句子。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.