сценарий bash для проверки работы службы

Ваш BIOS должен поддерживать PXE. Вы должны настроить DHCP на сервере таким образом, чтобы при загрузке система выдавала указатель на образ ядра и initrd (начальный таранный диск) образ, обычно через TFTP. Ваш initrd образ сам по себе является крошечной версией ОС, способной загружать драйверы и выполнять команды при необходимости. Теоретически, вся ОС может быть запущена с этого образа, но обычно она используется для выполнения следующей фазы загрузки ОС, которой на данный момент может быть iSCSI.

Вместо того, чтобы делать iSCSI, ваш initrd мог, например, создать безопасный туннель к серверу NFS. IPSEC будет шифровать весь IP поток, в то время как решение на основе сокетов потребует, чтобы NFS использовала TCP (а не UDP).

0
22.12.2017, 22:39
2 ответа

Основываясь на этом вопросе , короткий и понятный способ:

systemctl is-active --quiet service

Выйдет с нулевым кодом, если служба запущена.

Пример печати службы sshd запущена или нет:

systemctl is-active --quiet sshd && echo "sshd is running" || echo "sshd is NOT running"
8
28.01.2020, 02:24

Вы можете использовать функцию case для лучшего контроля.

#!/bin/bash
i=$(ps -eaf | grep -i mysql | sed '/^$/d' | wc -l); echo $i
case $i in
    0) echo "The mysql service is 'not running'.";;
    1) echo "The mysql Service has 'failed'. You may need to restart the service";;
    2) echo "The mysql service is 'running'. No problems detected.";;
esac

В первом примере есть ошибка. Пробел должен быть до и после '|', '||', '&' или '&&'

Так следует читать

i=$(ps -eaf | grep -i mysql | sed '/^$/d' | wc -l); echo $i
0
28.01.2020, 02:24

Теги

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