projects:linux:manual_backup_scripts:oss_check
OSS Check
Входит в набор rPi Seal
- 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
*******
projects/linux/manual_backup_scripts/oss_check.txt · Последнее изменение: 2025/04/11 17:44 —