Инструменты пользователя

Инструменты сайта


projects:linux:manual_backup_scripts:oss_check

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
projects:linux:manual_backup_scripts:oss_check [2025/04/08 00:15] – создано projects:linux:manual_backup_scripts:oss_check [2025/04/11 17:44] (текущий)
Строка 3: Строка 3:
 //**Входит в набор [[projects:linux:manual_backup_scripts|rPi Seal]]**// //**Входит в набор [[projects:linux:manual_backup_scripts|rPi Seal]]**//
  
 +<code bash oss_check.sh>
 +#!/bin/bash
 +export LANG=en_US.UTF-8
 +export LC_ALL=en_US.UTF-8
 +# ==DIS/AUTOEXEC==
 +# === OSS Check ===
 +# 08_oss_check.sh — Проверка целостности системы после восстановления SD
 +#
  
 +# Стартовый заголовок проверки
 +echo "📦 Проверка целостности системы Raspberry Pi"
 +echo "-------------------------------------------"
 +
 +# Вспомогательные функции для форматированного вывода результатов
 +ok() { echo "✅ $1"; }
 +fail() { echo "❌ $1"; }
 +
 +# Корневой раздел — информация о доступном и свободном месте
 +# Также выводим устройство, на котором смонтирован root (например, /dev/mmcblk0p2 или /dev/nvme0n1p2)
 +echo -n "🔍 Размер root-раздела: "
 +df -h / | awk 'NR==2 {print $2 " total, " $4 " free"}'
 +echo -n "🔍 Root-раздел: "
 +findmnt -n -o SOURCE /
 +
 +# Проверка наличия критических файлов /boot/config.txt и /etc/fstab
 +# Эти файлы часто теряются при некорректном восстановлении или сбоев на SD
 +
 +echo -n "🔍 /boot/config.txt: "
 +[[ -f /boot/config.txt ]] && ok "Найден" || fail "Нет файла"
 +
 +echo -n "🔍 /etc/fstab: "
 +[[ -f /etc/fstab ]] && ok "Найден" || fail "Нет файла"
 +
 +# Проверка статуса службы SSH (часто требуется для удалённого управления)
 +echo -n "🔍 Служба SSH: "
 +if systemctl is-active ssh &>/dev/null; then
 +  ok "Активна"
 +else
 +  fail "Неактивна"
 +  echo "ℹ️  Подсказка: sudo systemctl enable --now ssh"
 +fi
 +
 +# Проверка интерфейсов WireGuard
 +# Проверяется наличие утилиты wg и активные интерфейсы
 +
 +echo -n "🔍 WireGuard-интерфейсы: "
 +if command -v wg &>/dev/null; then
 +  ACTIVE_WG=$(wg show interfaces)
 +  [[ -n "$ACTIVE_WG" ]] && ok "$ACTIVE_WG" || fail "Не запущен ни один интерфейс"
 +else
 +  fail "Утилита wg не найдена"
 +fi
 +
 +# Проверка работы службы Docker
 +# Важно для работы контейнеров (например, RustDesk)
 +echo -n "🔍 Служба Docker: "
 +if systemctl is-active docker &>/dev/null; then
 +  ok "Активна"
 +else
 +  fail "Неактивна"
 +fi
 +
 +# Проверка наличия и активности контейнера RustDesk
 +# Используется grep, так как имя контейнера может быть внутри строки docker ps
 +echo -n "🔍 Контейнер rustdesk-server: "
 +if command -v docker &>/dev/null; then
 +  docker ps | grep -q rustdesk && ok "Работает" || fail "Не запущен"
 +else
 +  fail "Docker не установлен"
 +fi
 +
 +# Проверка последних ошибок ядра через dmesg
 +# Возможны предупреждения, ошибки, повреждения
 +# Исключаются Bluetooth-сообщения, выводится только 3 последних
 +
 +if dmesg &>/dev/null; then
 +  echo -n "🔍 Ошибки ядра: "
 +  DMESG_OUTPUT=$(dmesg | grep -iE 'error|fail|corrupt|warn' | grep -v 'Bluetooth' | tail -n 3)
 +  if [[ -n "$DMESG_OUTPUT" ]]; then
 +    echo
 +    echo "$DMESG_OUTPUT"
 +  else
 +    ok "Нет критичных ошибок"
 +  fi
 +else
 +  fail "Нет доступа к dmesg (попробуйте sudo)"
 +fi
 +
 +# Отображение IP-адресов всех активных сетевых интерфейсов
 +# Проверяется наличие утилиты ip, так как в некоторых минимальных сборках её нет
 +
 +echo "🔍 IP-адреса:"
 +if command -v ip &>/dev/null; then
 +  ip -o -4 addr show | awk '{print "   " $2 ": " $4}'
 +else
 +  fail "Утилита ip не найдена"
 +fi
 +
 +# Проверка подключения к интернету через ping на 1.1.1.1 или 8.8.8.8
 +# Это может выявить проблемы с маршрутизацией или DNS
 +
 +echo -n "🌐 Подключение к интернету (1.1.1.1): "
 +if ping -c 1 -W 1 1.1.1.1 &>/dev/null || ping -c 1 -W 1 8.8.8.8 &>/dev/null; then
 +  ok "Доступно"
 +else
 +  fail "Нет ответа"
 +fi
 +
 +# Завершение проверки
 +
 +echo "-------------------------------------------"
 +echo "🧪 Проверка завершена"
 +
 +# ВОЗМОЖНО: добавить выход с кодом ошибки в будущем для автоматизации
 +# Например:
 +# exit $STATUS
 +</code>
 +===== ******* =====
 +[[https://boosty.to/takraztak/donate|Поддержать через Boosty]]
projects/linux/manual_backup_scripts/oss_check.1744060548.txt.gz · Последнее изменение: 2025/04/08 00:15 —

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution 4.0 International
CC Attribution 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki