Блок сервисов и пакетов реализован через инлай клавиатуру. Жмешь копку - получаешь результат или уточняешь просьбу и получаешь результат.
Вывод данных от ОСи не всегда (практические никогда) красивый. Для форматирования ответов нужно поработать ещё. Но это не про функциональность.
- Освоить навыки программирования на практике.
- Научиться создавать функциональные Telegram боты.
- Закрепить навыки работы с регулярными выражениями.
- Закрепить опыт работы с Linux системами и сбора информации о них через SSH подключение.
В лекционном материале присутствует практические навыки, которые необходимо проделать и указать в отчёте.
Основным заданием является написание Telegram бота.
В ходе реализации проекта необходимо использовать логгирование, с использованием модуля logging и записью логов в соответсвующий файл.
Этот бот должен реализовывать следующий функционал:
В боте должен быть реализован функционал поиска необходимой информации и вывод ее пользователю. Поиск должен быть реализован с помощью регулярных выражений.
Информация, которую бот должен уметь выделять из текста:
а) Email-адреса.
Команда: /find_email
б) Номера телефонов.
Команда: /find_phone_number
Взаимодействия с этими командами происходит по следующему принципу:
- Пользователь выбирает команду
- Бот запрашивает текст
- Пользователь отправляет текст
- Бот вывод список найденных номеров телефона или email-адресов.
В боте должен быть реализован функционал проверки сложности пароль с использованием регулярного выражения.
Команда: /verify_password
Требования к паролю:
- Пароль должен содержать не менее восьми символов.
- Пароль должен включать как минимум одну заглавную букву (A–Z).
- Пароль должен включать хотя бы одну строчную букву (a–z).
- Пароль должен включать хотя бы одну цифру (0–9).
- Пароль должен включать хотя бы один специальный символ, такой как !@#$%^&*().
Взаимодействие с этой командой происходит по следующему принципу:
- Пользователь выбирает команду
- Бот запрашивает пароль
- Пользователь отправляет пароль
- Бот отвечает: ‘
Пароль простой’ или ‘Пароль сложный’.
Бот должен реализовывать функционал для мониторинга 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
- Вывод всех пакетов;
- Поиск информации о пакете, название которого будет запрошено у пользователя.
3.10 Сбор информации о запущенных сервисах.
Команда: /get_services
Взаимодействия с этими командами происходит по следующему принципу:
- Пользователь выбирает команду
- Бот отправляет соответствующую информацию