1

Я пытаюсь настроить задачу cron для удаления файла, я использую интерфейс plesk, команда:

* * * * 1-7 rm /mypath/file_name_to_delete

Это должно выполняться каждую минуту, верно? Кажется, это не работает.

3 ответа3

3

Некоторые наблюдения:

  1. Пятый столбец записи crontab имеет диапазон от 0 (воскресенье) до 6 (суббота), а не 1-7.
  2. Настройки среды в задании cron довольно скудны, и задачи часто ведут себя не так, как в интерактивной оболочке. Это длинный путь, но убедитесь, что команда rm находится в $PATH .
  3. Отладка заданий cron довольно сложна. Иногда выходные данные из задания, которое не перенаправлено в файл, отправляются вам по почте. Иногда это не так. Осуществлять больший контроль над результатами своей работы:

    * * * * * my_cron_job >> /home/me/cron_job.log 2 >> /home/me/cron_job.err
    
  4. Попробуйте что-нибудь простое, чтобы убедиться, что cron работает и работает так, как вы ожидаете. Что-то вроде:

    * * * * * /usr/bin/date >> /home/me/cron.test 2>&1
    

    проверим основные функциональные возможности. Вы можете сделать это более сложным оттуда.

0

Команда имени файла rm требует подтверждения 'yes' или 'no'. Поэтому команда не может быть выполнена без подтверждения.

Существует команда 'rm -f filename' для удаления файлов без подтверждения.

0

Ответы mobrule - хорошее руководство по устранению неполадок.

Дополнительные советы:

  • Если вы не получаете почту, система, вероятно, настроена не полностью: все реализации cron (о которых я знаю) будут отправлять выходные данные (stdout & stderr) пользователю, который создал crontab (некоторые также поддерживают переменную MAILTO для установки). этот пользователь). Проблемы обычно возникают, если локальная доставка почты неправильно настроена для пользователя. Если вы используете cron, всегда проверяйте локальную доставку почты. Большинство дистрибутивов Linux делают это автоматически, если вы устанавливаете их почтовый сервер по умолчанию, который будет выгружать почту в /var /spool /mail / или переадресовывать ее по адресу, указанному в файле .forward в пользовательском $ HOME. Это должно быть исправлено, если вы используете cron, иначе сообщения об ошибках будут отброшены.
  • Если вы можете использовать только Plesk, некоторые из упомянутых выше настроек могут быть вам недоступны (хотя они должны быть установлены хостинг-провайдером). В этом случае перенаправление stdout & stderr в файл - хороший обходной путь, как в ответе mobrule.

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