2

У меня есть скрипт ruby в ~/custom_scripts/get_all_products.rb .

Я хочу, чтобы он работал каждую ночь в 04:00.

Вот как выглядит cronjob в crontab -e :

MAILTO="<email>"
0 4 * * * ruby ~/custom_scripts/get_all_products.rb

Но это не выполняется.

Что я должен попробовать дальше?

2 ответа2

3

В прошлом у меня были проблемы с использованием расширения тильды в crontabs (возможно, это был вариант Unix, отличный от Linux). Тем не менее, я бы предложил использовать $HOME вместо ~ .

Также лучше указывать полный путь к вашему исполняемому файлу ruby . PATH используемый cron, часто не тот, который вы установили в интерактивном окружении (например, в моей системе cron PATH это просто /usr/bin:/bin).

2

Я думаю, что вам нужно решить две проблемы:

  1. ~ является синонимом Shell для $HOME . Вы должны использовать это в чем-то вроде cron
  2. $HOME может быть неправильно настроен для вашей команды. crontab -e по умолчанию редактирует корневой каталог root. Ни один из ваших пользователей. Замените просто ~ и $HOME абсолютным путем.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .