Skip to content

ciuses/devops_stream2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Телеграм бот, написан как учебный. Умеет искать телефоны и имейлы в месиве из слов.

А так же отдаёт ряд данных с указанной в файле env оси.

Блок сервисов и пакетов реализован через инлай клавиатуру. Жмешь копку - получаешь результат или уточняешь просьбу и получаешь результат.

Вывод данных от ОСи не всегда (практические никогда) красивый. Для форматирования ответов нужно поработать ещё. Но это не про функциональность.

Задание к блоку №1. Создание функциональныx Telegram ботов

Цель:

  1. Освоить навыки программирования на практике.
  2. Научиться создавать функциональные Telegram боты.
  3. Закрепить навыки работы с регулярными выражениями.
  4. Закрепить опыт работы с Linux системами и сбора информации о них через SSH подключение.

Задание:

В лекционном материале присутствует практические навыки, которые необходимо проделать и указать в отчёте.

Основным заданием является написание Telegram бота.

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

Этот бот должен реализовывать следующий функционал:

1. Поиск информации в тексте и вывод ее

В боте должен быть реализован функционал поиска необходимой информации и вывод ее пользователю. Поиск должен быть реализован с помощью регулярных выражений.

Информация, которую бот должен уметь выделять из текста:

а) Email-адреса.

Команда: /find_email

б) Номера телефонов.

Команда: /find_phone_number

❗ Стоит учесть различные варианты записи номеров телефона. 8XXXXXXXXXX, 8(XXX)XXXXXXX, 8 XXX XXX XX XX, 8 (XXX) XXX XX XX, 8-XXX-XXX-XX-XX. Также вместо ‘`8`’ на первом месте может быть ‘`+7`’.

Взаимодействия с этими командами происходит по следующему принципу:

  1. Пользователь выбирает команду
  2. Бот запрашивает текст
  3. Пользователь отправляет текст
  4. Бот вывод список найденных номеров телефона или email-адресов.
❗ Важно! Если номера телефонов или email-адреса найдены не были, необходимо сообщить об этом пользователю.

2. Проверка сложности пароля регулярным выражением.

В боте должен быть реализован функционал проверки сложности пароль с использованием регулярного выражения.

Команда: /verify_password

Требования к паролю:

  • Пароль должен содержать не менее восьми символов.
  • Пароль должен включать как минимум одну заглавную букву (A–Z).
  • Пароль должен включать хотя бы одну строчную букву (a–z).
  • Пароль должен включать хотя бы одну цифру (0–9).
  • Пароль должен включать хотя бы один специальный символ, такой как !@#$%^&*().

Взаимодействие с этой командой происходит по следующему принципу:

  1. Пользователь выбирает команду
  2. Бот запрашивает пароль
  3. Пользователь отправляет пароль
  4. Бот отвечает: ‘Пароль простой’ или ‘Пароль сложный’.

3. Мониторинг Linux-системы

Бот должен реализовывать функционал для мониторинга Linux системы. Для этого будет устанавливаться SSH-подключение к удаленному серверу (в его роли может выступать собственная виртуальная машина), с помощью которого будет собираться метрики с системы. Мониторинг должен включать в себя следующий показатели:

3.1 Сбор информации о системе:

3.1.1 О релизе.

Команда: /get_release

3.1.2 Об архитектуры процессора, имени хоста системы и версии ядра.

Команда: /get_uname

3.1.3 О времени работы.

Команда: /get_uptime

3.2 Сбор информации о состоянии файловой системы.

Команда: /get_df

3.3 Сбор информации о состоянии оперативной памяти.

Команда: /get_free

3.4 Сбор информации о производительности системы.

Команда: /get_mpstat

3.5 Сбор информации о работающих в данной системе пользователях.

Команда: /get_w

3.6 Сбор логов

3.6.1 Последние 10 входов в систему.

Команда: /get_auths

3.6.2 Последние 5 критических события.

Команда: /get_critical

3.7 Сбор информации о запущенных процессах.

Команда: /get_ps

3.8 Сбор информации об используемых портах.

Команда: /get_ss

3.9 Сбор информации об установленных пакетах.

Команда: /get_apt_list

❗ Стоит учесть два варианта взаимодействия с этой командой:
  1. Вывод всех пакетов;
  2. Поиск информации о пакете, название которого будет запрошено у пользователя.

3.10 Сбор информации о запущенных сервисах.

Команда: /get_services

Взаимодействия с этими командами происходит по следующему принципу:

  1. Пользователь выбирает команду
  2. Бот отправляет соответствующую информацию

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages