Поиск по сайту:
Моя эпитафия: «Лень отняла его у нас раньше, чем смерть» (А. Ривароль).

Проверка количества задач в wp-cron в WordPress с помощью WP-CLI + Monit + Email Alerts

03.08.2017
Проверка количества wp-cron в WordPress с помощью WP-CLI + Monit + Email Alerts

Монит является очень гибким инструментом мониторинга, помогает отслеживать работу Ваших услуг. Он может быть использован для отправки уведомлений, когда процессы аварийно останавливаются, то автоматически перезапускать их. На всех VPS и выделенных серверах мы создали для своих клиентов настройку Monit для упреждающего мониторинга.

Wp-cron может иногда останавливаться и появляются тысячи скрытых cronjobs, которые не работают. Вместо мониторинга вручную, эта статья покажет вам, как использовать Bash и WP-CLI, чтобы подсчитать, сколько cronjobs в очереди wp-cron. Далее мы настроим Monit для использования скрипта Bash и оповещение по электронной почте, если количество cronjobs в очереди превышает определенное число, которое вы укажете. Этот пост основан на  том, как контролировать размер папки WordPress с Monit.

Проверка количества задач в wp-cron в WordPress с помощью WP-CLI + Monit + Email Alerts

Эта команда WP-CLI перечислит события в wp-cron

wp cron event list

 

Для того, чтобы получить счетчик, можно удалить столбец заголовки строки из таблицы sedа затем сосчитать линии с wc

wp cron event list --allow-root --skip-plugins --skip-themes | sed -n '1!p' | wc -l

 

Создание сценария

mkdir ~/scripts
nano ~/scripts/wpcronchecker.sh

 

Вставить этот скрипт

#!/bin/bash
# Автор from https://andreyex.ru

#захват первой переменной
WPPATH=$1

#захват второй переменной
CRONTHRESHOLD=$2

#взять количество cronjob
WPCRONCOUNT=$(wp cron event list --path=$WPPATH --allow-root --skip-plugins --skip-themes | sed -n '1!p' | wc -l)

#вывод задачи cron для того чтобы Monit мог захватить его
echo "$WP_PATH has $WPCRONCOUNT cronjobs"

#предоставить код состояния для оповещения
if [[ $WPCRONCOUNT -gt $(( $CRONTHRESHOLD )) ]]; then
    exit 1
fi

 

Читать  Как избавиться от другого обновления при ошибки в WordPress

Сделайте скрипт исполняемым

chmod +x wpcronchecker.sh

 

Тест работает скрипт, передавая свой путь к папке установки WordPress в качестве первого параметра и число cronjobs, при превышении которого должно вызвать тревогу

bash wpcronchecker.sh /var/www/andreyex.ru/ 50

 

Вы получите этот выход

/var/www/andreyex.ru/ has 12 cronjobs

 

Теперь мы можем настроить Monit для использования скрипта Bash и отобразит его вывод

Настройка Monit для проверки wp-cron

Если у вас есть модульная система для создания конфигураций MONIT, как указано в руководстве по установке MONIT, создайте новый фрагмент

sudo nano /etc/monit/conf.d/wpcroncheck

 

Если WordPress установка в  /var/www/andreyex.ru имеет cronjobs в очереди больше, чем 50, мы получим уведомление по электронной почте.

Тогда каждые 1440 циклов линии означает, что Monit будет проверять каждый раз с интервалом 1440, определенный в /etc/monit/monitrc

check program wp-cron
    with path "/root/scripts/wpcronchecker.sh /var/www/andreyex.ru/ 50"
    every 1440 cycles
    if status != 0 then alert

Ctrl + X, Y и Enter, чтобы сохранить и выйти.

Синтаксис тестирования Monit действует с нашим новым добавлением проверки дискового пространства и оповещения.

sudo monit -t

 

Обновите Monit если не было никаких ошибок

sudo service monit reload

 

Проверьте в Monit и вы увидите работу wp-cron 🙂

Проверка количества wp-cron в WordPress с помощью WP-CLI + Monit + Email Alerts

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

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
При разработке веб - сайтов WordPress для клиентов или компаний,…

Спасибо!

Теперь редакторы в курсе.