fsWatcher - projeto em python para monitoramento de mudanças em arquivos e diretórios com sistema de alarme integrado ao Telegram

O monitoramento de sistema de arquivos é uma tarefa essencial para muitos aplicativos e sistemas, permitindo que você acompanhe as mudanças nos arquivos e diretórios e tome ações apropriadas com base nessas mudanças.
Introdução
O script que vamos desenvolver utilizará a biblioteca watchdog
para monitorar eventos do sistema de arquivos, como criação, modificação e remoção de arquivos e diretórios. Também faremos uso da API do Telegram para enviar notificações em tempo real sobre esses eventos.
O script possibilita você configurar um array de mimetypes no qual o script monitora e quando adicionado algum arquivo como no exemplo abaixo .php, .exe, .com ele dispara um alerta no terminal e também envia o aviso pelo Telegram.
Um arquivo de log com a data monitora todas as ações de criação, remoção e atualização de arquivos e diretórios.

Funcionalidades
Nosso script terá as seguintes funcionalidades:
- Monitoramento de eventos do sistema de arquivos em um diretório específico.
- Envio de notificações via Telegram quando certas condições forem atendidas, como a criação de arquivos com extensões perigosas.
- Possibilidade de configurar diretórios para serem ignorados pelo monitoramento.
Conheça o funcionamento do fsWatcher no vídeo abaixo
Pré-requisitos
Antes de começarmos, você precisará ter o Python 3.x instalado em seu sistema. Além disso, é necessário instalar as bibliotecas Python watchdog
e requests
.
Você pode instalá-las usando o pip:
Copy codepip install watchdog requests
Configuração
O script requer um arquivo de configuração config.json
para definir as credenciais do bot do Telegram, as extensões de arquivo a serem monitoradas e os diretórios a serem ignorados. Aqui está um exemplo de como o arquivo de configuração pode ser estruturado:
jsonCopy code{ "botToken": "SEU_TOKEN_DO_BOT_TELEGRAM", "botChatID": "SEU_ID_DO_CHAT_TELEGRAM", "warningExtensions": [".exe", ".bat", ".com"], "toSkip": ["node_modules", "temp"]}
Certifique-se de substituir "SEU_TOKEN_DO_BOT_TELEGRAM"
e "SEU_ID_DO_CHAT_TELEGRAM"
pelos valores reais do token do seu bot do Telegram e pelo ID do seu chat, respectivamente. Você também pode adicionar ou remover extensões de arquivo perigosas da lista warningExtensions
e especificar diretórios a serem ignorados na lista toSkip
.
Implementação
O script será desenvolvido em Python e fará uso das bibliotecas watchdog
e requests
. Ele terá três partes principais:
- Configuração: Carregar as configurações do arquivo
config.json
. - Monitoramento de Eventos: Implementar a classe
MyHandler
que herda da classeFileSystemEventHandler
e definir métodos para lidar com os diferentes eventos do sistema de arquivos. - Execução Principal: Iniciar o observador para monitorar o diretório especificado e lidar com as interrupções de teclado para encerrar o programa.
Repositório para download e contribuição