Описание скриптов
- Скрипт выгрузки статистики финального редиректа на портале (
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 хоста запуска скрипта или %>'; |
Блок кода |
---|
|
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