Если Вы получаете предупреждение в админ панели 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.
После данных изменений предупреждение из админ-панели пропадет.
Если есть вопросы, то пишем в комментариях.