Телеграмм бот на питоне с использованием контейнеров Docker
В боте реализован функционал поиска необходимой информации и вывод ее пользователю. Поиск с помощью регулярных выражений.
Информация, которую бот выделяет из текста:
-
Email-адреса. Команда:
/find_email -
Номера телефонов. Команда:
/find_phone_number
Шаблон номеров
+79999999999 +7 999 999 99 99 +7 (999) 999-99-99 +7(999)999-99-99 +7-999-999-99-99
79999999999 7 999 999 99 99 7 (999) 999-99-99 7(999)999-99-99 7-999-999-99-99
89999999999 8 999 999 99 99 8(999)999-99-99 8 (999) 999-99-99 8-999-999-99-99
999-99-99 - Домашний
9999999999 - Без префикса (первая не 0)
Взаимодействия с этими командами происходит по следующему принципу:
-
Пользователь выбирает команду
-
Бот запрашивает текст
-
Пользователь отправляет текст
-
Бот вывод список найденных номеров телефона или email-адресов.
Если номера телефонов или email-адреса найдены не были, сообщается об этом пользователю.
В боте реализован функционал проверки сложности пароль с использованием регулярного выражения.
Команда: /verify_password
Требования к паролю:
-
Пароль должен содержать не менее восьми символов.
-
Пароль должен включать как минимум одну заглавную букву (A–Z).
-
Пароль должен включать хотя бы одну строчную букву (a–z).
-
Пароль должен включать хотя бы одну цифру (0–9).
-
Пароль должен включать хотя бы один специальный символ, такой как !@#$%^&*().
Взаимодействие с этой командой происходит по следующему принципу:
-
Пользователь выбирает команду
-
Бот запрашивает пароль
-
Пользователь отправляет пароль
-
Бот отвечает: ‘Пароль простой’ или ‘Пароль сложный’.
В боте реализован функционал для мониторинга Linux системы. Для этого устанавливаться SSH-подключение к удаленному серверу (в его роли может выступать собственная виртуальная машина, эта машина не должна участвовать в развертывании проекта), с помощью которого будет собираться метрики с системы.
Мониторинг включает в себя следующий показатели:
- Сбор информации о системе:
-
О релизе.
/get_release -
Об архитектуры процессора, имени хоста системы и версии ядра.
/get_uname -
О времени работы.
/get_uptime -
Сбор информации о состоянии файловой системы.
/get_df -
Сбор информации о состоянии оперативной памяти.
/get_free -
Сбор информации о производительности системы.
/get_mpstat -
Сбор информации о работающих в данной системе пользователях.
/get_w -
Сбор логов
-
Последние 10 входов в систему.
/get_auths -
Последние 5 критических события.
/get_critical
-
-
Сбор информации о запущенных процессах.
/get_ps -
Сбор информации об используемых портах.
/get_ss -
Сбор информации об установленных пакетах.
/get_apt_listДва варианта взаимодействия с этой командой:
-
Вывод всех пакетов;
-
Поиск информации о пакете, название которого будет запрошено у пользователя.
-
-
Сбор информации о запущенных сервисах.
/get_services
Взаимодействия с этими командами происходит по следующему принципу:
-
Пользователь выбирает команду
-
Бот отправляет соответствующую информацию
docker ps -adocker psdocker imagesdocker-compose updocker-compose downdocker build -t bot_image .docker run -d \
--name bot_container \
--env-file /home/kalashov-feodor-olegovich/PT_START_bot/.env \
-p 5434:5432 \
bot_imagedocker exec -it bot_container bashdocker logs bot_containerdocker stop bot_containerdocker rm bot_containerdocker rmi bot_imagedocker build -t db_image .docker run -d \
--name db_container \
--env-file /home/kalashov-feodor-olegovich/PT_START_bot/.env \
-v /home/kalashov-feodor-olegovich/PT_START_bot/archive:/oracle/pgdata/archive \
-p 5432:5432 \
db_imagedocker exec -it db_container bashdocker logs db_containerdocker stop db_containerdocker rm db_containerdocker rmi db_imagedocker build -t db_repl_image .docker run -d \
--name db_repl_container \
--env-file /home/kalashov-feodor-olegovich/PT_START_bot/.env \
-p 5433:5432 \
db_repl_imagedocker exec -it db_repl_container bashdocker logs db_repl_containerdocker stop db_repl_containerdocker rm db_repl_containerdocker rmi db_repl_image