Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Описание скриптов

  1. Скрипт выгрузки статистики финального редиректа на портале (main.py). Позволяет получить статистику уникальных пользователей по домену со ссылкой финального редиректа. 
  2. Скрипт изменения URL финального редиректа (replace_urls.py). Изменяет ссылку финального редиректа во всех порталах, найденных в результирующем файле первого скрипта (main.py).


Алгоритм работы скрипта 

  1. Создание подключений к базам данных;
  2. Проверка корректности доменов, введенных в файл application.conf;
  3. Получение всех необходимых данных из баз данных;
  4. Объединение всех полученных данных и подсчет уникальных пользователей;
  5. Сохранение полученного результата в файл (вывод названия файла в терминал);

Подготовка к запуску

У пользователя MySQL должны быть права чтения на БД wireless для таблиц SSID и SSID_PARAMS, которых нет по-умолчанию.
Так же для проверки нужны будут права чтения на таблицу DOMAINS базы данных eltex_ems.
Посмотреть текущие права:

show grants for <имя пользователя>;


Команда для выдачи прав:

GRANT SELECT ON wireless.SSID TO '<имя пользователя>'@'<ip хоста запуска скрипта или %>'; 
GRANT SELECT ON wireless.SSID_PARAMS TO '<имя пользователя>'@'<ip хоста запуска скрипта или %>'; 
GRANT SELECT ON eltex_ems.DOMAINS TO '<имя пользователя>'@'<ip хоста запуска скрипта или %>';


  • Для запуска скрипта должен быть установлен python3.10

  • Для запуска скрипта необходимо установить зависимости. Это можно сделать при помощи команды:

sudo pip3.10 install -r requirements.txt


Порядок запуска скриптов

  • Сконфигурировать скрипт в файле application.conf
  • Запустить скрипт main.py для получения результирующего файла статистики
  • Настроить скрипт замены ссылок финальных редиректов (settings.replace_urls в application.conf)
  • Запустить скрипт replace_urls.py

Конфигурационный файл application.conf

  • settings
    • domains список доменов, по которым необходимо фильтровать пользователей
    • nested флаг вложенности доменов. True - со вложенными, False- без вложенных
    • date_filter фильтр по дате. Будут найдены пользователи, созданные после указанной даты
      (не рекомендуется указывать дату старше полугода от текущей)
    • replace_urls настройка скрипта замены ссылок (настраивается после запуска main.py для replace_urls.py)
      • old_url ссылка финального редиректа, которую необходимо заменить
      • new_url ссылка финального редиректа, на которую будет заменена старая
      • result_file название результирующего файла, полученного скриптом сбора статистики (в этом файле хранятся данные, необходимые для запуска скрипта replace_urls.py)
  • logging
    • level уровень логирования (возможные варианты: "DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL")
    • filename название файла, в который будут записываться логи
  • clickhouse
    • host хост, на котором установлен clickhouse
    • port порт clickhouse
    • user имя пользователя clickhouse
    • password пароль пользователя clickhouse
  • mysql
    • host хост, на котором установлен mysql
    • port порт mysql
    • username имя пользователя
    • password пароль пользователя
    • charset_ems кодировка базы данных eltex_ems
    • charset_radius кодировка базы данных radius
    • charset_wireless кодировка базы данных wireless
    • charset_ELTEX_PORTAL кодировка базы данных ELTEX_PORTAL

Запуск скрипта сбора статистики

python3.10 main.py

Запуск скрипта изменения ссылок финальных редиректов

python3.10 replace_urls.py

Пример работы скрипта main.py:

Start 
В таблице radstat найдено 404 записей, удовлетворяющих условию 
В таблице radacct найдено 609 записей, удовлетворяющих условию 
Результат выполнения скрипта выгружен в файл: result_2023-06-05_17-58-35.csv 
Finish 
Время выполнения скрипта: 0.04 с.

Пример работы скрипта replace_urls.py:

Start 
Заменена(ы) 3 ссылка(и) финального редиректа
Finish 
Время выполнения скрипта: 2.21 с.

Скрипт с описанием доступен в архиве analyze_and_replace_redirection_URL.zip

  • Нет меток