Техническое задание: Система мониторинга и биллинга сетевого трафика

Цель проекта

Разработать отказоустойчивый Python-скрипт для автоматического учета сетевого трафика, управления балансами пользователей и интеграции с существующей базой данных.

Основные функции

  • Мониторинг трафика: Регулярный (каждые 5 минут) подсчет входящего и исходящего трафика на портах, указанных в базе данных MySQL.
  • Работа с данными: Получение списка портов и текущих балансов пользователей из БД.
  • Биллинг: Автоматический пересчет баланса пользователя на основе потребленного трафика и заданного тарифа.
  • Обработка событий: При достижении нулевого или отрицательного баланса - внесение изменений в указанный текстовый конфигурационный файл и перезагрузка системной службы.
  • Производительность: Скрипт должен стабильно работать с несколькими сотнями портов одновременно.

Технические требования

  • Язык программирования: Python 3.
  • База данных: MySQL.
  • Операционная система: Ubuntu (скрипт должен быть адаптирован под эту ОС).
  • Периодичность работы: Цикл опроса и подсчета - 5 минут (реализовать через планировщик cron или демон).
  • Надежность: Обеспечить обработку ошибок подключения к БД, отсутствия портов и других исключительных ситуаций.

Ожидаемый результат

Готовое к развертыванию решение в виде Python-скрипта с комментариями. Скрипт должен самостоятельно выполнять весь цикл: сбор данных, анализ трафика, обновление балансов в БД и выполнение корректирующих действий при необходимости.