uploader-bot/scripts/full_diagnosis.sh

150 lines
5.4 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# MY Network Server Full Diagnosis Script
# Собирает всю информацию о состоянии сервера для удаленной диагностики
echo "=============================================="
echo "MY NETWORK SERVER DIAGNOSIS REPORT"
echo "Время: $(date)"
echo "Сервер: $(hostname)"
echo "=============================================="
echo ""
echo "=== 1. СИСТЕМНАЯ ИНФОРМАЦИЯ ==="
echo "OS: $(lsb_release -d 2>/dev/null | cut -f2 || cat /etc/os-release | grep PRETTY_NAME | cut -d'"' -f2)"
echo "Kernel: $(uname -r)"
echo "Uptime: $(uptime)"
echo "Disk space:"
df -h | grep -E "(/$|/home)"
echo "Memory:"
free -h
echo "Load average: $(cat /proc/loadavg)"
echo ""
echo "=== 2. СЕТЕВЫЕ ПОРТЫ И СОЕДИНЕНИЯ ==="
echo "Активные порты (LISTEN):"
sudo netstat -tulpn | grep LISTEN | sort -k4
echo ""
echo "Проверка ключевых портов:"
for port in 22 80 443 3000 5000 8080; do
if sudo netstat -tulpn | grep -q ":${port} "; then
echo "✅ Порт $port: АКТИВЕН"
else
echo "❌ Порт $port: НЕ АКТИВЕН"
fi
done
echo ""
echo "=== 3. СТАТУС СИСТЕМНЫХ СЛУЖБ ==="
echo "Docker service:"
sudo systemctl status docker --no-pager -l
echo ""
echo "SSH service:"
sudo systemctl status ssh --no-pager -l
echo ""
echo "Nginx service:"
sudo systemctl status nginx --no-pager -l
echo ""
echo "MyUploader service:"
sudo systemctl status myuploader --no-pager -l 2>/dev/null || echo "MyUploader service не найден"
echo ""
echo "=== 4. DOCKER ИНФОРМАЦИЯ ==="
echo "Docker version:"
docker --version 2>/dev/null || echo "Docker не установлен"
echo ""
echo "Docker-compose version:"
docker-compose --version 2>/dev/null || echo "Docker-compose не установлен"
echo ""
echo "Запущенные контейнеры:"
sudo docker ps -a --format "table {{.Names}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}" 2>/dev/null || echo "Контейнеры не найдены"
echo ""
echo "Docker networks:"
sudo docker network ls 2>/dev/null || echo "Docker networks недоступны"
echo ""
echo "=== 5. MY-UPLOADER-BOT ПРОЕКТ ==="
PROJECT_DIR="/home/myuploader/my-uploader-bot"
if [ -d "$PROJECT_DIR" ]; then
echo "✅ Директория проекта найдена: $PROJECT_DIR"
echo "Содержимое директории:"
ls -la "$PROJECT_DIR"
echo ""
if [ -f "$PROJECT_DIR/docker-compose.production.yml" ]; then
echo "✅ Docker-compose файл найден"
echo "Статус compose проекта:"
cd "$PROJECT_DIR"
sudo docker-compose -f docker-compose.production.yml ps 2>/dev/null || echo "Ошибка получения статуса compose"
else
echo "❌ Docker-compose.production.yml не найден"
fi
else
echo "❌ Директория проекта не найдена: $PROJECT_DIR"
fi
echo ""
echo "=== 6. ЛОГИ КОНТЕЙНЕРОВ (последние 10 строк) ==="
for container in uploader-bot-app-1 uploader-bot-postgres-1 uploader-bot-nginx-1; do
echo "--- Логи $container ---"
sudo docker logs --tail=10 "$container" 2>/dev/null || echo "Контейнер $container не найден или не запущен"
echo ""
done
echo ""
echo "=== 7. NGINX КОНФИГУРАЦИЯ ==="
echo "Nginx конфигурация:"
sudo nginx -t 2>&1
echo ""
echo "Default site config:"
if [ -f "/etc/nginx/sites-enabled/default" ]; then
sudo cat /etc/nginx/sites-enabled/default
else
echo "❌ /etc/nginx/sites-enabled/default не найден"
fi
echo ""
echo "=== 8. SSH КОНФИГУРАЦИЯ ==="
echo "SSH config (основные параметры):"
sudo cat /etc/ssh/sshd_config | grep -E "^(Port|PasswordAuthentication|PubkeyAuthentication|PermitRootLogin)" || echo "SSH config недоступен"
echo ""
echo "=== 9. ФАЙРВОЛ (UFW) ==="
echo "UFW статус:"
sudo ufw status verbose 2>/dev/null || echo "UFW не установлен или недоступен"
echo ""
echo "=== 10. ЛОКАЛЬНЫЕ ТЕСТЫ СОЕДИНЕНИЙ ==="
echo "Тест локальных соединений:"
for port in 3000 5000 8080; do
if curl -s --max-time 3 http://localhost:$port/api/health > /dev/null 2>&1; then
echo "✅ localhost:$port/api/health - ДОСТУПЕН"
else
echo "❌ localhost:$port/api/health - НЕ ДОСТУПЕН"
fi
done
echo ""
echo "Тест nginx:"
curl -I http://localhost/ 2>/dev/null | head -5 || echo "❌ Nginx недоступен на localhost"
echo ""
echo "=== 11. ПРОЦЕССЫ ==="
echo "Процессы Python/Docker:"
ps aux | grep -E "(python|docker|nginx)" | grep -v grep
echo ""
echo "=== 12. RECENT SYSTEM LOGS ==="
echo "Последние системные ошибки:"
sudo journalctl --since "1 hour ago" --priority=err --no-pager -n 10 2>/dev/null || echo "Системные логи недоступны"
echo ""
echo "=============================================="
echo "ДИАГНОСТИКА ЗАВЕРШЕНА"
echo "Время завершения: $(date)"
echo "=============================================="
echo ""
echo "📋 КРАТКАЯ СВОДКА:"
echo "Скопируйте весь вывод этого скрипта и отправьте для анализа"
echo ""