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: | ||
| // | // | ||
| + | <code bash oss_check.sh> | ||
| + | #!/bin/bash | ||
| + | export LANG=en_US.UTF-8 | ||
| + | export LC_ALL=en_US.UTF-8 | ||
| + | # ==DIS/ | ||
| + | # === OSS Check === | ||
| + | # 08_oss_check.sh — Проверка целостности системы после восстановления SD | ||
| + | # | ||
| + | # Стартовый заголовок проверки | ||
| + | echo "📦 Проверка целостности системы Raspberry Pi" | ||
| + | echo " | ||
| + | |||
| + | # Вспомогательные функции для форматированного вывода результатов | ||
| + | ok() { echo "✅ $1"; } | ||
| + | fail() { echo "❌ $1"; } | ||
| + | |||
| + | # Корневой раздел — информация о доступном и свободном месте | ||
| + | # Также выводим устройство, | ||
| + | echo -n "🔍 Размер root-раздела: | ||
| + | df -h / | awk 'NR==2 {print $2 " total, " $4 " free" | ||
| + | echo -n "🔍 Root-раздел: | ||
| + | findmnt -n -o SOURCE / | ||
| + | |||
| + | # Проверка наличия критических файлов / | ||
| + | # Эти файлы часто теряются при некорректном восстановлении или сбоев на SD | ||
| + | |||
| + | echo -n "🔍 / | ||
| + | [[ -f / | ||
| + | |||
| + | echo -n "🔍 /etc/fstab: " | ||
| + | [[ -f /etc/fstab ]] && ok " | ||
| + | |||
| + | # Проверка статуса службы SSH (часто требуется для удалённого управления) | ||
| + | echo -n "🔍 Служба SSH: " | ||
| + | if systemctl is-active ssh &>/ | ||
| + | ok " | ||
| + | else | ||
| + | fail " | ||
| + | echo " | ||
| + | fi | ||
| + | |||
| + | # Проверка интерфейсов WireGuard | ||
| + | # Проверяется наличие утилиты wg и активные интерфейсы | ||
| + | |||
| + | echo -n "🔍 WireGuard-интерфейсы: | ||
| + | if command -v wg &>/ | ||
| + | ACTIVE_WG=$(wg show interfaces) | ||
| + | [[ -n " | ||
| + | else | ||
| + | fail " | ||
| + | fi | ||
| + | |||
| + | # Проверка работы службы Docker | ||
| + | # Важно для работы контейнеров (например, | ||
| + | echo -n "🔍 Служба Docker: " | ||
| + | if systemctl is-active docker &>/ | ||
| + | ok " | ||
| + | else | ||
| + | fail " | ||
| + | fi | ||
| + | |||
| + | # Проверка наличия и активности контейнера RustDesk | ||
| + | # Используется grep, так как имя контейнера может быть внутри строки docker ps | ||
| + | echo -n "🔍 Контейнер rustdesk-server: | ||
| + | if command -v docker &>/ | ||
| + | docker ps | grep -q rustdesk && ok " | ||
| + | else | ||
| + | fail " | ||
| + | fi | ||
| + | |||
| + | # Проверка последних ошибок ядра через dmesg | ||
| + | # Возможны предупреждения, | ||
| + | # Исключаются Bluetooth-сообщения, | ||
| + | |||
| + | if dmesg &>/ | ||
| + | echo -n "🔍 Ошибки ядра: " | ||
| + | DMESG_OUTPUT=$(dmesg | grep -iE ' | ||
| + | if [[ -n " | ||
| + | echo | ||
| + | echo " | ||
| + | else | ||
| + | ok " | ||
| + | fi | ||
| + | else | ||
| + | fail " | ||
| + | fi | ||
| + | |||
| + | # Отображение IP-адресов всех активных сетевых интерфейсов | ||
| + | # Проверяется наличие утилиты ip, так как в некоторых минимальных сборках её нет | ||
| + | |||
| + | echo "🔍 IP-адреса:" | ||
| + | if command -v ip &>/ | ||
| + | ip -o -4 addr show | awk ' | ||
| + | else | ||
| + | fail " | ||
| + | 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 &>/ | ||
| + | ok " | ||
| + | else | ||
| + | fail " | ||
| + | fi | ||
| + | |||
| + | # Завершение проверки | ||
| + | |||
| + | echo " | ||
| + | echo "🧪 Проверка завершена" | ||
| + | |||
| + | # ВОЗМОЖНО: | ||
| + | # Например: | ||
| + | # exit $STATUS | ||
| + | </ | ||
| + | ===== ******* ===== | ||
| + | [[https:// | ||
projects/linux/manual_backup_scripts/oss_check.1744060548.txt.gz · Последнее изменение: —
