Files
hotels/check_rkn_status.sh
Фёдор 0cf3297290 Проект аудита отелей: основные скрипты и документация
- Краулеры: smart_crawler.py, regional_crawler.py
- Аудит: audit_orel_to_excel.py, audit_chukotka_to_excel.py
- РКН проверка: check_rkn_registry.py, recheck_unclear_rkn.py
- Отчёты: create_orel_horizontal_report.py
- Обработка: process_all_hotels_embeddings.py
- Документация: README.md, DB_SCHEMA_REFERENCE.md
2025-10-16 10:52:09 +03:00

111 lines
4.3 KiB
Bash
Executable File
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
# Скрипт для проверки статуса РКН проверки
echo "═══════════════════════════════════════════════════════════════"
echo "🔍 СТАТУС ПРОВЕРКИ РКН (РОСКОМНАДЗОР)"
echo "═══════════════════════════════════════════════════════════════"
# Проверка процесса
if ps aux | grep -v grep | grep "check_rkn_registry.py" > /dev/null; then
PID=$(ps aux | grep -v grep | grep "check_rkn_registry.py" | awk '{print $2}')
CPU=$(ps aux | grep -v grep | grep "check_rkn_registry.py" | awk '{print $3}')
MEM=$(ps aux | grep -v grep | grep "check_rkn_registry.py" | awk '{print $4}')
echo "✅ РКН проверка РАБОТАЕТ"
echo " PID: $PID"
echo " CPU: ${CPU}%"
echo " MEM: ${MEM}%"
else
echo "❌ РКН проверка НЕ РАБОТАЕТ"
fi
echo ""
echo "───────────────────────────────────────────────────────────────"
echo "📊 ПРОГРЕСС ИЗ БАЗЫ ДАННЫХ:"
echo "───────────────────────────────────────────────────────────────"
python3 << 'EOF'
import psycopg2
from urllib.parse import unquote
from datetime import datetime, timedelta
conn = psycopg2.connect(
host='147.45.189.234',
port=5432,
database='default_db',
user='gen_user',
password=unquote('2~~9_%5EkVsU%3F2%5CS')
)
cur = conn.cursor()
# Общая статистика
cur.execute("""
SELECT
COUNT(*) as total_with_inn,
COUNT(CASE WHEN rkn_checked_at IS NOT NULL THEN 1 END) as checked
FROM hotel_main
WHERE owner_inn IS NOT NULL AND owner_inn != '' AND owner_inn != '-'
""")
row = cur.fetchone()
total = row[0]
checked = row[1]
remaining = total - checked
progress = checked * 100 / total if total > 0 else 0
print(f"Отелей с ИНН: {total}")
print(f"Проверено: {checked} ({progress:.1f}%)")
print(f"Осталось: {remaining}")
# Проверено за последние 10 минут
cur.execute("""
SELECT COUNT(*)
FROM hotel_main
WHERE rkn_checked_at > NOW() - INTERVAL '10 minutes'
""")
last_10min = cur.fetchone()[0]
if last_10min > 0:
speed = last_10min / 10 # отелей в минуту
eta_min = remaining / speed if speed > 0 else 0
print(f"\n⚡ СКОРОСТЬ (за последние 10 мин):")
print(f" {last_10min} отелей проверено")
print(f" Скорость: {speed:.1f} отелей/мин")
if eta_min > 0:
print(f" Примерное время до завершения: {eta_min/60:.1f} часов")
# Результаты
cur.execute("""
SELECT
rkn_registry_status,
COUNT(*) as count
FROM hotel_main
WHERE rkn_checked_at IS NOT NULL
GROUP BY rkn_registry_status
""")
print(f"\n📋 РЕЗУЛЬТАТЫ:")
for row in cur.fetchall():
status = row[0] if row[0] else 'NULL'
count = row[1]
percent = count * 100 / checked if checked > 0 else 0
icon = '✅' if status == 'found' else '❓' if status == 'unclear' else '❌'
print(f" {icon} {status:15} | {count:5} ({percent:5.1f}%)")
conn.close()
EOF
echo ""
echo "───────────────────────────────────────────────────────────────"
echo "📋 ПОСЛЕДНИЕ 15 СТРОК ЛОГА:"
echo "───────────────────────────────────────────────────────────────"
if [ -f "rkn_check_all.log" ]; then
tail -15 rkn_check_all.log
else
echo "❌ Лог файл не найден"
fi
echo ""
echo "═══════════════════════════════════════════════════════════════"