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

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

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.

Monitoramento em tempo real 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

fsWatcher em funcionamento

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:

  1. Configuração: Carregar as configurações do arquivo config.json.
  2. Monitoramento de Eventos: Implementar a classe MyHandler que herda da classe FileSystemEventHandler e definir métodos para lidar com os diferentes eventos do sistema de arquivos.
  3. 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

GitHub - jaccon/fswatcher-script: The FsWatcher is a tool to monitoring file system changes to files and directory
The FsWatcher is a tool to monitoring file system changes to files and directory - jaccon/fswatcher-script