Если Вы получаете предупреждение в админ панели NextCloud вида: “Последнее задание было выполнено X дней назад. Похоже, что-то не в порядке.

Соглавно документации и настроек, есть три варианта решения задачи:

AJAX – Выполнять одно задание с каждой загруженной страницей

По умолчанию Nextcloud использует метод планирования AJAX. Это самый простой, но не очень надёжный вариант. При каждом посещении пользователем web-страницы Nextcloud выполняется фоновое задание. Преимущество этого варианта в том, что он не требует ни каких дополнительных настроек. Недостатком этого механизма, что для его запуска требуется регулярное посещение страницы.

Webcron – cron.php зарегистрирован в службе webcron и будет вызываться каждые 5 минут по HTTP.

в этом варианте мы регистрируем адрес скрипта cron.php, который будет запускаться внешней веб-службой cron. Адрес скрипта если вы устанавливали без поддиректорий:

http[s]://ваш_сайт.ру/cron.php

(FQDN от англ. Fully Qualified Domain Name – полностью определённое имя домена)

Для настройки вы можете воспользоваться сервисом easycron.com или аналогичным. Чтобы использовать этот вариант автоматического выполнения фоновых задач на сервере, необходимо чтобы nextcloud сервер имел доступ к серверу через Интернет.

Cron – Использовать системный cron для вызова файла cron.php каждые 5 минут. cron.php должен исполняться из под пользователя “www”.

Наиболее предпочитаемый вариант – это использование функции cron в операционной системе. Этот метод позволяет выполнять запланированные задания без ограничений. Тут достаточно наличие выделенного сервера (VDS, VPS и т.д ) или доступ к системному Cron.

Чтобы запустить задание cron в Linux, нам необходимо узнать от какого пользователя работает веб-сервер. Проверяем с помощью sockstat какой сервис слушает порты 80 и 443. Необходимо установить программу:

sudo apt install sockstat
sockstat -l | grep -E "80|443"
root     nginx           2448     tcp4   *:80              *:*                       
root     nginx           2449     tcp4   *:80              *:*                       

или при помощи netstat

netstat -tulpn | grep -E ":80|:443"
tcp  0   0 0.0.0.0:80     0.0.0.0:*       LISTEN      2448/nginx: master

Итак, настраивать будем cron от пользователя www-data (актуально для Debian/Ubuntu), на запуск вызова сценария cron.php каждый 5 минут:

sudo crontab -u www-data -e

добавляем строку в конце

*/5 *  * * * php -f /var/www/nextcloud/cron.php
  • /var/www/nextcloud/cron.php – путь до веб-директории с nextcloud.

После данных изменений предупреждение из админ-панели пропадет.

[endtxt]

. . . .

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

5 2 голоса
Рейтинг статьи

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов cookie) с использованием трекеров "Google Analytics" и "Yandex.Metrics". Порядок обработки Ваших персональных данных, а также реализуемые требования к их защите, содержатся в Политике конфиденциальности.
Принять