#!/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 ""