Назад | Перейти на главную страницу

Cron для пользователя, не работающего в Plesk 10/11

У меня странная проблема с plesk, и я, кажется, нигде не могу найти ответа в официальной поддержке, поэтому я надеюсь, что кто-то здесь сможет пролить свет.

Я просто пытаюсь запустить скрипт через cron, используя «запланированные задачи» в пользовательской панели управления. Команда установлена ​​на: php / var / www / полный / путь / к / скрипту и он работает в командной строке.

Сообщение об ошибке, которое я получаю, когда он запускается через cron (теперь, когда я обновился до plesk 11):

пользователь с id = xxxxx и name = xxxxxxxx не найден в chrooted passwd ошибка файловой системы: нет такого файла или каталога

Очевидно, xxxxxx - это настоящий идентификатор и имя. Пользователь указан в файле / etc / passwd и ничем не отличается от других.

У меня есть другой домен, который делает то же самое, ежечасно запускает задание cron, используя ту же команду (но с другим скриптом). Этот сценарий работает нормально, они находятся на тех же настройках хостинга и т. Д. И должны работать одинаково.

Есть ли у кого-нибудь идеи, что попытаться сделать, чтобы «исправить» пользователя?

РЕДАКТИРОВАТЬ:

Итак, я нашел это, осмотрев сервер: /usr/local.psa/admin/sbin/crontabmng

Если я сделаю crontabmng для пользователя с рабочим crontab, я вижу в верхней части файла, что он говорит ОБОЛОЧКА = / bin / sh - когда пользователь не работает, я вижу ОБОЛОЧКА = / usr / local / psa / bin / chrootsh

Кажется, что даже при том, что эти два пользователя должны быть идентичными (я предполагаю, что они могли быть настроены в разных версиях plesk, поскольку обновления произошли, но они, насколько мне известно, были настроены с использованием идентичного процесса) - один из у них есть хромированная оболочка, а у других - нет.

Теперь мне просто нужно узнать, как изменить эту настройку ...

Я нашел ответ, даже если он немного «неэлегантен» и, вероятно, не решает в первую очередь то, что вызывает проблему.

Однако это может помешать еще нескольким людям вырвать волосы.

Решение состоит в том, чтобы отредактировать файл crontab для пользователя и изменить эту переменную SHELL, однако я понятия не имею, где находится файл crontabl для пользователя.

Итак, я использовал эти шаги.

  1. / usr / local / psa / admin / sbin / crontabmng получить [пользователь]> cron.txt
  2. vi cron.txt
  3. (отредактируйте cron.txt и измените переменную SHELL на / bin / sh)
  4. / usr / local / psa / admin / sbin / crontabmng set [пользователь] cron.txt

По сути, это сбрасывает crontab для этого пользователя в файл cron.txt в вашем текущем каталоге, где вы можете его отредактировать и использовать для перезагрузки обратно в менеджер crontab. Замените cron.txt полным путем, куда бы вы ни положили этот файл ....

РЕДАКТИРОВАТЬ:

И теперь я нашел более постоянное решение, которое работает, если вам не нужны какие-либо задания cron в chrooted shell, выполните эту команду:

/ usr / локальный / psa / bin / server_pref -u -crontab-secure-shell / bin / sh

Узнайте больше об этом из Вот (решение легче найти, если вы знаете, что именно ищете в Google!)