Презрения достоин высокий ум, примененный для низких целей (Б. Грасиан).

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

2 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
3 августа 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

 

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

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

Просмотров: 73

Если статья понравилась, то поделитесь ей в социальных сетях:

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close