Назад | Перейти на главную страницу

Журнал использования команды выключения / сообщение

Я хочу отслеживать, когда какая-либо из наших машин запускает команду выключения, чтобы она могла отправить электронное письмо или уведомление о неизбежной перезагрузке / выключении. Я подумал, что при запуске выключения он, вероятно, ретранслирует широковещательное сообщение в системный журнал, но я не вижу, чтобы оно сохранялось ни в одном из журналов. Есть ли способ регистрировать каждый раз, когда запускается эта команда?

[править] Для пояснения, когда запускается команда выключения, я имею в виду, когда она начинается работает (или когда он впервые сообщает об отключении) НЕ когда фактически запускается выключение системы. Поэтому я хочу иметь возможность улавливать, когда он отправляет такое сообщение: система отключается для перезагрузки через 5 минут!

Если вы хотите отслеживать только команду выключения:

  • вы можете обернуть его в сценарий оболочки, который отправляет электронное письмо
  • вы можете использовать предварительно загруженную библиотеку, которая регистрирует команду, например любопытный регистратор
  • вы можете использовать systemtap для записи всех exec * () для завершения работы.

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

Обратите внимание, что последний журнал создает запись при запуске машины.

Возможна внеполосная запись с использованием BMC / LOM / IPMI. Вы можете использовать это, если ваша материнская плата имеет встроенный BMC, или вы установили BMC в качестве платы расширения.

Я не нашел способа отправить уведомление при выключении (в RedHat). И имейте в виду:

  • электронная почта, которая отправляется самостоятельно во время выключения, скорее всего, останется в очереди почты, пока система не вернется в оперативный режим
  • В случае отключения электроэнергии никаких действий, происходящих во время выключения, не произойдет. В этом случае вам лучше сделать что-то во время процесса запуска.

Но вы можете выполнять действия при запуске с помощью cron, используя @reboot "ник".

Итак, если сценарий /usr/local/bin/email-on-reboot.sh отправляет электронное письмо / уведомление о запуске, добавьте это в /etc/crontab:

@reboot  /usr/local/bin/email-on-reboot.sh

Вы можете изменить syslog.conf, чтобы перехватить эти сообщения.

например, если у вас стандартный системный журнал, тогда строка

 *.*   /var/log/all.log

хранить все сообщения.

Если у вас есть rsyslog (например, современный debian), вы можете запустить какой-нибудь скрипт (отправить электронное письмо и т. Д.) При событии