Описание скриптов
- Скрипт выгрузки статистики финального редиректа на портале (
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)
logginglevelуровень логирования (возможные варианты: "DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL")
filenameназвание файла, в который будут записываться логи
clickhouse- host хост, на котором установлен clickhouse
portпорт clickhouseuserимя пользователя clickhousepasswordпароль пользователя clickhouse
mysqlhostхост, на котором установлен 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