Выполните различные команды оболочки, когда ГАЙКА сообщит о низкой батарее UPS

echo Не показывает Вам пробел в конце. Для этого Вам нужно что-то как echo "${URL_PARAMS}x". Можно сделать set -x сразу перед wget звоните и set +x сразу после, чтобы видеть, как wget назван.

Проблемой является разделение слова оболочки:

${ARG_DATE/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/1} = "1"

вместо

"${ARG_DATE/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/1}" = "1"

Решение состояло бы в том, чтобы поместить это перед той (фиксированной) строкой:

ARG_DATE="${ARG_DATE// /}"
4
19.02.2018, 22:24
2 ответа

Что вы пытаетесь сделать (используйте предварительно установленный крюк) - это самый элегантный подход.

Но когда это невозможно, потому что нет ни одного крючка или те, которые не соответствуют вашим потребностям, подход опроса также является вариантом.

Вы можете отслеживать вывод компонентов гайка в / var / log файлов.

Мои (Salicru UPS на Debian 7), например, журналы этого:

28 13:37:49 Имя хоста UPSMON [1766]: UPS Salicru @ Caramon на аккумулятор

, когда UPS переключается в аккумулятор, а также Это

28 13:39:39 Имя хоста UPSMON [1766]: UPS Salicru @ Caramon на линии линии

, когда мощность вернулась.

Вы можете моделировать сбой питания, см. Сообщения журнала, а затем написать задание CRON, которая запускается каждую минуту (или 5 минут), ищет эти строки в журналах и требует действий, который вы хотите.

1
27.01.2020, 20:55

Вы можете попробовать использовать upssched.conf(5), чтобы запустить свой собственный скрипт на таймере после того, как произойдет событие.

Основной upssched.conf будет что-то вроде этого:

CMDSCRIPT /bin/your-script.sh
AT ONBATT * EXECUTE emailonbatt
AT ONBATT * START-TIMER upsonbatt 300
AT ONLINE * EXECUTE emailonline
AT ONLINE * CANCEL-TIMER upsonbatt upsonline

С этим, NUT будет:

  • Сразу после того, как ИБП зарядится от батареи, запустите /bin/your-script.sh emailwarn.
  • Через пять минут после того, как ИБП зарядится от батареи, запустите /bin/your-script.sh upsonbatt.
  • Сразу после того, как ИБП восстановит линейное питание, запустите /bin/your-script.sh upsonline .
  • Сразу же после того, как ИБП восстановит питание от сети, также отключите таймер апсонбат, если он все еще активен. В противном случае, запустите /bin/your-script.sh upsonline.

Сценарий может быть чем-то вроде:

#!/bin/bash
case $1 in
        emailonbatt)
                  mail -s "UPS on battery power" your@email.com
                  ;;
        emailonline)
                  mail -s "UPS on line power" your@email.com
                  ;;
        upsonbatt)
                  ssh root@nas shutdown -h +0
                  ;;
        upsonline)
                  etherwake 01:23:45:AB:CD:EF
                  ;;
esac

Синтаксис для оператора AT можно найти в man-странице для upssched.conf(5), а доступные типы событий уведомления можно найти в man-странице для upsmon(8).

3
27.01.2020, 20:55

Теги

Похожие вопросы