Python FLask REST API для загрузки файлов журнала с Linux серверов - PullRequest
0 голосов
/ 20 марта 2020

Я очень новичок в Python Flask. Для проекта мне нужно написать REST API (Download Logs) для загрузки файлов журналов с определенного количества хостов. Хосты, имена хостов / IP-адреса хранятся в базе данных MySql.

1) Пользователь загружает страницу загрузки

@app.route('/download')

2) На этой странице, пользователь выберет из списка FQDN имена хостов (выпадающий список), извлеченные из базы данных.

3) Пользователь выбирает полное имя хоста FQDN, и в зависимости от выбора в другом раскрывающемся списке перечислены связанные имена хостов и IP-адреса.

4) Пользователь выбирает из списка IP-адресов, которые хранятся в списке / массиве

5) Пользователь нажимает кнопку загрузки, чтобы запустить команду для загрузки указанных c файлов журнала

a) s sh на хосты -> переименовать существующий файл журнала

ssh = paramiko.SSHClient()
ssh.connect(server, username=username, password=password)
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command(mv log-file.log <hostname>-log-file-$(date +\%d/\%m/\%Y).log)

b) scp файл на localhost

ssh = paramiko.SSHClient()
ssh.connect(server, username=username, password=password)
ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command(scp <hostname>-log-file-$(date +\%d/\%m/\%Y).log <username>@<ip-address:/<path>)

c) Сообщение об успешном получении после загрузки файлов журнала

Я собираюсь использовать Python Flask веб-фреймворк с пакетами MySql для подключения к базе данных MySql и получения IP-адресов. Однако я несколько озадачен тем, как собрать кусочки вместе, ie, как сохранить Возвращаемые в базе данных значения (IP-адреса) в списке и передаваемые списки для функции загрузки должны будут использовать значения от l oop до l oop над своим списком и выполнять команды s sh.

Я посмотрел различные колбы / MySql примеры кода, но не смогли собрать решение вместе.

Любые мысли о том, с чего начать. Ура, Роланд

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...