111 lines
4.3 KiB
Bash
111 lines
4.3 KiB
Bash
|
|
#!/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 "═══════════════════════════════════════════════════════════════"
|
|||
|
|
|