#!/bin/bash # Diagnostic script for Ollama issues echo "🔍 Диагностика проблем с Ollama..." # Colors GREEN='\033[0;32m' RED='\033[0;31m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' echo -e "${BLUE}=== ДИАГНОСТИКА СИСТЕМЫ ===${NC}" # Check if ollama service exists echo "1. Проверка существования сервиса..." if systemctl list-unit-files | grep -q ollama.service; then echo -e "${GREEN}✅ Сервис ollama.service найден${NC}" else echo -e "${RED}❌ Сервис ollama.service НЕ найден${NC}" fi # Check service status echo "2. Статус сервиса..." systemctl status ollama --no-pager -l # Check if service is running echo "3. Активность сервиса..." if systemctl is-active --quiet ollama; then echo -e "${GREEN}✅ Сервис активен${NC}" else echo -e "${RED}❌ Сервис НЕ активен${NC}" fi # Check recent logs echo "4. Последние логи (последние 10 записей)..." journalctl -u ollama --no-pager -l | tail -10 # Check if ollama binary exists echo "5. Проверка бинарного файла ollama..." if [ -f "/usr/local/bin/ollama" ]; then echo -e "${GREEN}✅ /usr/local/bin/ollama найден${NC}" /usr/local/bin/ollama --version else echo -e "${RED}❌ /usr/local/bin/ollama НЕ найден${NC}" fi # Check if port 11434 is listening echo "6. Проверка порта 11434..." if command -v ss >/dev/null 2>&1; then if ss -tuln | grep -q ":11434"; then echo -e "${GREEN}✅ Порт 11434 прослушивается${NC}" ss -tuln | grep ":11434" else echo -e "${RED}❌ Порт 11434 НЕ прослушивается${NC}" fi elif command -v netstat >/dev/null 2>&1; then if netstat -tuln | grep -q ":11434"; then echo -e "${GREEN}✅ Порт 11434 прослушивается${NC}" netstat -tuln | grep ":11434" else echo -e "${RED}❌ Порт 11434 НЕ прослушивается${NC}" fi else echo -e "${YELLOW}⚠️ Команды ss/netstat недоступны${NC}" fi # Check API availability echo "7. Проверка API..." if curl -s -m 5 http://localhost:11434 >/dev/null 2>&1; then echo -e "${GREEN}✅ Ollama API доступен${NC}" else echo -e "${RED}❌ Ollama API НЕ доступен${NC}" fi # Check directory structure echo "8. Проверка директорий..." if [ -d "/home/user/ai-server" ]; then echo -e "${GREEN}✅ /home/user/ai-server существует${NC}" else echo -e "${RED}❌ /home/user/ai-server НЕ существует${NC}" fi if [ -d "/home/user/ai-server/.ollama" ]; then echo -e "${GREEN}✅ /home/user/ai-server/.ollama существует${NC}" ls -la /home/user/ai-server/.ollama else echo -e "${YELLOW}⚠️ /home/user/ai-server/.ollama НЕ существует${NC}" fi # Check models echo "9. Проверка моделей..." if [ -f "/usr/local/bin/ollama" ]; then echo "Доступные модели:" /usr/local/bin/ollama list 2>/dev/null || echo "Не удалось получить список моделей" fi echo "" echo -e "${BLUE}=== РЕКОМЕНДАЦИИ ===${NC}" if ! systemctl is-active --quiet ollama; then echo -e "${YELLOW}💡 Сервис не запущен. Выполните:${NC}" echo " sudo ./quick-fix.sh" echo " или" echo " sudo ./fix-ollama.sh" fi if ! curl -s -m 5 http://localhost:11434 >/dev/null 2>&1; then echo -e "${YELLOW}💡 API недоступен. Возможные причины:${NC}" echo " - Сервис не запущен" echo " - Проблемы с конфигурацией" echo " - Проблемы с портом 11434" fi echo "" echo -e "${GREEN}🔧 Для исправления выполните: sudo ./quick-fix.sh${NC}"