В ubuntu не работают задания в /etc/cron.d

Когда я запускаю php /var/www/html/devices/ac1/cron_on.php в терминале, он работает нормально. Но когда я добавляю его в каталог /etc/cron.d, ничего не происходит.

Работа cron 49 11 * * * root php /var/www/html/devices/ac1/cron_on.php

Еще пробовал 49 11 * * * root /usr/bin/php /var/www/html/devices/ac1/cron_on.php

И пробовал без root

Каким был назван файл, который вы поместили в /etc/cron.d/? Если я правильно помню, файлы с расширениями игнорируются.

Mr.Christer 05.11.2018 10:06

Кроме того, файл, который вы поместили в cron.d, принадлежит root: root (chown root: root <filename>)?

Mr.Christer 05.11.2018 10:13

Имя файла - 001_on, и он принадлежит root: root.

Soul Gamer 05.11.2018 10:17

Замените содержимое вашего файла cron (в cron.d) на * * * * * root echo test >> /tmp/cron_temp и проверьте этот файл примерно через минуту, чтобы исключить cron. Что вы получите, если запустите service cron status? Есть ли у вас подсказка в /var/log/syslog, если вы ищете CRON?

Mr.Christer 05.11.2018 10:28

С помощью "* * * * * root echo test >> / tmp / cron_temp" я получаю ОШИБКУ (отсутствует новая строка перед EOF, этот crontab будет проигнорирован)

Soul Gamer 05.11.2018 10:38

Вам нужно добавить новую пустую строку в конец файла. Однако это прогресс, cron пытается запустить файл.

Mr.Christer 05.11.2018 10:44

Я сделал, и ошибка исчезла. Теперь он говорит (root) CMD (php /var/www/html/devices/ac1/cron_on.php^M), но то, что должно было произойти с помощью php, не произошло.

Soul Gamer 05.11.2018 12:02

Большой! Если вы тестируете строку * * * * * root /usr/bin/php /var/www/html/devices/ac1/cron_on.php &> /tmp/log_file, ваша команда будет запускаться каждую минуту, а вывод будет передаваться в файл / tmp / log_file, который вы можете проверить на предмет подсказок. Что там написано? Вы также можете попробовать запустить свою команду как root, например. sudo /usr/bin/php /var/www/html/devices/ac1/cron_on.php, чтобы узнать, не вызывает ли проблем пользователь root.

Mr.Christer 05.11.2018 13:01

Все хорошо. Большое тебе спасибо.

Soul Gamer 05.11.2018 20:32

Я создал ответ. Пометьте его как ответ, если вы думаете, что это поможет другим. Кроме того, спасибо.

Mr.Christer 05.11.2018 20:43
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
10
5 588
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы найти проблему и заставить ее работать, рассмотрите следующие

  • Убедитесь, что скрипт в /etc/cron.d/ принадлежит root: root (chmod root:root /etc/cron.d/<script>)
  • Убедитесь, что сценарий заканчивается новой строкой
  • Если сценарий не работает, попробуйте простой, например. * * * * * root echo test >> /tmp/cron_temp и монитор /tmp/cron_temp
  • service cron status покажет, насколько хорошо выполняется строка.
  • Если выполняемые строки кажутся виноватыми, попробуйте запустить его как пользователь в файле cron sudo -u username <command-to-be-run>.

Это помогло мне решить аналогичную проблему ... запуск service cron status сообщает вам, что файл также должен быть chmod 644, что меня разобрало.

Daryl Teo 01.05.2021 09:04

Другие вопросы по теме