Программа обеспечивает следующие возможности:
- Автоматизированная ежесуточная выгрузка всех портальных учётных записей, дата создания которых находится в текущем месяце.
- Выгрузка производится на FTP сервер.
- Неуспешная выгрузка сопровождается письмом на EMail из списка администраторов (задаётся в настройках программы);
- Успешная выгрузка на FTP может (опционально) сопровождаться отсылкой копии архива выгрузки на EMail клиента (задаётся в настройках программы)
- Выгрузка производится для всех записей, находящихся внутри сервисного домена: "BANK_URAL-SIB.Federal.AllClients.root"
- По умолчанию, выгрузка настроена на запуск в 23:45 по системному серверному времени каждые сутки
- Программа создаёт файл с уникальным именем, в котором присутствует дата и время создания выгрузки
- Выгрузка в простом текстовом формате csv в кодировке utf8
- Для уменьшения занимаемого места, перед отправкой выгрузка сжимается архиватором zip (без пароля)
- Формат имени файла, выгружаемого на FTP: uralsib-hotspot-2019-01-23_02-07-48.zip
- Формат файла внутри архива: uralsib-hotspot-2019-01-23_02-07-48.csv
Методика инсталляции:
- Выбрать любой Linux host (Ubuntu), у которого будет обеспечена связность с БД Платформы SoftWLC и удалённым сервером FTP (это может быть любой из хостов Платформы).
- Убедиться, что на хосте установлен Python 2.x.
Установить необходимые дополнительные модули Python на хост командами:
sudo apt-get install python-pip sudo pip install mysql-connector-python
Распаковать приложенный архив "uralsib-ftp-upload-v10.tgz" в любом временном каталоге:
tar -xvf uralsib-ftp-upload-v10.tgz
Запустить файл deploy-uralsib-upload.sh с правами root:
sudo ./deploy-uralsib-upload.sh
Убедиться, что на хосте выполнено всё, что есть в скрипте: задача cron, каталог для логов, деплой приложения:
APP_PATH="/usr/lib/eltex-tools/" APP_FILE="uralsib-upload-ftp.py" LOG_PATH="/var/log/uralsib-uploader" CRON_PATH="/etc/cron.d/" CRON_FILE="uralsib-upload"
Открыть скрипт '/usr/lib/eltex-tools/uralsib-upload-ftp.py' в текстовом редакторе:
sudo nano /usr/lib/eltex-tools/uralsib-upload-ftp.py
Настроить MySQL хост, пользователь, пароль. Секция:
# Конфигурация для подключения к БД mysql_config = { 'user': 'javauser', 'password': 'javapassword', 'host': 'localhost', 'database': 'radius', 'charset': 'utf8' }
Настроить FTP хост, пользователь, пароль. Секция:
# Блок параметров для подключения к удалённому FTP-серверу FTP_ADDR = "127.0.0.1" FTP_USER = "ftpuser" FTP_PASSWORD = "password" # Путь на сервере, если нужно поместить файл не в корневой каталог пользователя, а в подкаталог FTP_PATH = "."
Настроить почтовый аккаунт для отправки сообщений (откуда, куда):
# --- EMAIL SETTINGS --- SEND_ALERT_EMAIL = 1 # ENABLE SEND ALERT OVER MAIL (0 or 1) - включить отправку АВАРИЙ на ЕМайл SEND_FILE_EMAIL = 0 # ENABLE SEND FILE OVER MAIL (0 or 1) # Общие настройки сервера отправки EMail EMAIL_SMTP_SERVER = "smtp.gmail.com" EMAIL_SMTP_PORT = 587 EMAIL_USER = '*********@gmail.com' # Please, insert your login here! EMAIL_PASSWORD = '**********' # Please, insert your password here! FILE_EMAIL_TO_ADDR_LIST = ['victor.abarenov@eltex.nsk.ru'] # Comma separated address list ALERT_EMAIL_TO_ADDR_LIST = ['victor.abarenov@eltex.nsk.ru'] # Comma separated address list
- Сохранить изменения и закрыть редактор
- Ручным запуском или путём модификации cron-периода (например, каждые 2 минуты) убедиться, что функционал работает.
- При проблемах смотреть лог файл тут: /var/log/uralsib-uploader/uralsib-upload-ftp.log
В качестве универсального почтового сервиса в настройки программы внесён gmail.com. Для продуктивного ядра стоит воспользоваться служебным корпоративным почтовым ящиком РТК.