Рестарт контейнера и службы VPN при ошибках
Примеры скриптов для рестарта в случае ошибок. Можно добавить в 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