Описание скриптов
- Скрипт выгрузки статистики финального редиректа на портале (
main.py
). Позволяет получить статистику уникальных пользователей по домену со ссылкой финального редиректа. - Скрипт изменения URL финального редиректа (
replace_urls.py
). Изменяет ссылку финального редиректа во всех порталах, найденных в результирующем файле первого скрипта (main.py
).
Алгоритм работы скрипта
- Создание подключений к базам данных;
- Проверка корректности доменов, введенных в файл
application.conf;
- Получение всех необходимых данных из баз данных;
- Объединение всех полученных данных и подсчет уникальных пользователей;
- Сохранение полученного результата в файл (вывод названия файла в терминал);
Подготовка к запуску
У пользователя 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
порт clickhouseuser
имя пользователя clickhousepassword
пароль пользователя clickhouse
mysql
host
хост, на котором установлен mysqlport
порт mysqlusername
имя пользователяpassword
пароль пользователяcharset_ems
кодировка базы данных eltex_emscharset_radius
кодировка базы данных radiuscharset_wireless
кодировка базы данных wirelesscharset_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