Files
ai-server/diagnose.sh
2025-09-22 16:12:20 +05:00

116 lines
3.9 KiB
Bash
Raw Permalink 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
# 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}"