我在plesk上遇到了一个奇怪的问题,我似乎无法在官方支持的任何地方find答案,所以我希望这里有人能够提供一些解答。
我只是试图通过使用用户控制面板中的“计划的任务”通过cron运行脚本。 该命令设置为: php / var / www / full / path / to / script ,它在命令行上工作。
我通过cron运行时得到的错误消息(现在我升级到了plesk 11)是:
在chrooted passwd文件系统中找不到id = xxxxx和name = xxxxxxxx的用户错误:没有这样的文件或目录
显然,xxxxxx是真实的ID和名字。 用户在/ etc / passwd文件中列出,看起来没有任何区别。
我有另一个域做类似的事情,使用相同的命令(但不同的脚本)每小时运行一个cron作业。 该脚本运行良好,他们在同一个主机设置等,应该function相同。
有没有人有一个想法试图做什么来“修复”用户?
编辑:
所以我通过在服务器上浏览find了这个: /usr/local.psa/admin/sbin/crontabmng
如果我做crontabmng得到与工作的crontab的用户,我看到在文件的顶部它说SHELL = / bin / sh – wheras在用户不工作我看到SHELL = / usr / local / psa /斌/ chrootsh
看来,即使这两个用户应该是相同的(我猜他们可能已经设置了不同版本的plesk,因为升级已经发生,但是据我所知,已经使用相同的过程来build立) – 其中之一他们有一个chrooted壳,另一个没有。
现在我只需要找出如何改变这个设置…..
我已经find了一个答案,即使这个答案有点“不雅”,可能也没有解决首先问题的原因。
但是,这可能会阻止更多的人撕掉头发。
解决scheme是编辑用户的crontab文件,并更改该SHELLvariables,但是,我不知道该用户的crontabl文件在哪里。
所以我使用了这些步骤。
实际上,这会将该用户的crontab转储到当前目录中的cron.txt文件中 – 您可以在其中对其进行编辑,然后使用它重新加载到crontabpipe理器中。 将“cron.txt”replace为您放置该文件的完整path….
编辑:
现在我发现了一个更持久的解决scheme,如果你不想在chroot shell中执行任何你的cron作业,运行这个命令:
/ usr / local / psa / bin / server_pref -u -crontab-secure-shell / bin / sh
从这里阅读更多关于它的信息 (当你知道你在用什么工具时,解决scheme更容易find!)