Рестарт контейнера и службы VPN при ошибках

Orange PI

splinter

Примеры скриптов для рестарта в случае ошибок. Можно добавить в crontab для авторестарта в случае ошибки.

#!/bin/bash

# Укажите имя или ID контейнера
CONTAINER_NAME="learninglogs_nginx"

# Проверка состояния контейнера
if [ "$(docker inspect -f '{{.State.Status}}' "$CONTAINER_NAME")" == "exited" ]; then
    echo "Контейнер '$CONTAINER_NAME' в статусе 'Exited'. Выполняется перезапуск..."
    docker start "$CONTAINER_NAME"
elif ! docker ps -q -f name="$CONTAINER_NAME"; then
    echo "Контейнер '$CONTAINER_NAME' не запущен. Выполняется перезапуск..."
    docker start "$CONTAINER_NAME"
else
    echo "Контейнер '$CONTAINER_NAME' уже запущен."
fi


 

#!/bin/bash

# Имя сервиса, который нужно проверять
SERVICE_NAME="openvpn@name.service"
current_time=$(date '+%Y-%m-%d %H:%M:%S')

# Получаем статус сервиса, проверяем последние 5 строк
if systemctl status $SERVICE_NAME | tail -n 5 | grep -q "UDPv4 link local: (not bound)"; then
    systemctl restart $SERVICE_NAME

    if [ $? -eq 0 ]; then
        echo "$current_time Ошибка обнаружена, сервис $SERVICE_NAME успешно перезапущен."
    else
        echo "$current_time Ошибка обнаружена, не удалось перезапустить сервис $SERVICE_NAME."
    fi
#else
#    echo "$current_time Ошибок не обнаружено в последних 5 строках статуса сервиса $SERVICE_NAME."
fi