Monitoramento de Espaço em Disco com Telegram
Recentemente, desenvolvi um script em Python que permite monitorar o espaço em disco de forma simples e eficaz. O script coleta informações sobre todos os discos montados e envia essas informações diretamente para um chat do Telegram. Abaixo, explico como o script funciona e como você pode configurá-lo.

Funcionalidades do Script
- Listagem de Discos: O script usa o comando df -hpara listar todos os discos e suas respectivas informações, como espaço total, usado e disponível.
- Envio de Mensagens: As informações são formatadas em uma mensagem e enviadas para o Telegram, permitindo um monitoramento em tempo real do espaço em disco.
- Divisão de Mensagens: Para evitar problemas com mensagens muito longas, o script divide automaticamente a mensagem em partes, garantindo que cada uma não exceda o limite de caracteres do Telegram.
Repositório do projeto
https://github.com/jaccon/PyStorage/
Código do Script
Aqui está o código do script. Lembre-se de ocultar suas credenciais do bot do Telegram para garantir a segurança. Para isso, utilize variáveis de ambiente ou um arquivo de configuração seguro.
# -*- coding: utf-8 -*-
import requests
import subprocess
import os
# Configurações do Telegram
bot_token = os.getenv('TELEGRAM_BOT_TOKEN')  # Adicione sua token do bot aqui
bot_chatID = os.getenv('TELEGRAM_CHAT_ID')    # Adicione seu chat ID aqui
max_message_length = 4096
def telegram_bot_sendtext(bot_message):
    send_text = f'https://api.telegram.org/bot{bot_token}/sendMessage?chat_id={bot_chatID}&parse_mode=Markdown&text={bot_message}'
    response = requests.get(send_text)
    return response.json()
def get_disk_usage():
    df_output = subprocess.check_output(['df', '-h']).decode('utf-8')
    lines = df_output.splitlines()[1:]  # Ignora o cabeçalho
    disk_info = []
    
    for line in lines:
        parts = line.split()
        disk_name = parts[0]
        total_space = parts[1]
        used_space = parts[2]
        available_space = parts[3]
        disk_info.append(f"{disk_name}: Total: {total_space}, Usado: {used_space}, Disponível: {available_space}")
    
    return disk_info
def send_disk_usage(disk_info):
    disk_usage_message = "Disk Space Monitoring\n\n" + "\n".join(disk_info)
    
    # Dividir a mensagem se for muito longa
    for i in range(0, len(disk_usage_message), max_message_length):
        part = disk_usage_message[i:i + max_message_length]
        sendMessage = telegram_bot_sendtext(part)
        print(sendMessage)
# Obtém o uso do disco
disk_info = get_disk_usage()
send_disk_usage(disk_info)
Configuração
Variáveis de Ambiente: Para proteger suas credenciais, utilize variáveis de ambiente para armazenar o token do bot e o chat ID. Você pode definir essas variáveis no seu sistema ou em um arquivo .env se estiver usando um gerenciador de ambiente.
Instalação de Dependências: Certifique-se de que você tenha a biblioteca requests instalada. Você pode instalá-la usando:
pip install requests
Execução do Script: Execute o script com o seguinte comando:
python3 disk_space_monitoring.py
Conclusão
Esse script é uma maneira prática de manter um olho no uso do disco e receber atualizações em tempo real no Telegram. É fácil de configurar e pode ser adaptado para atender a outras necessidades de monitoramento.
Sinta-se à vontade para entrar em contato se tiver alguma dúvida ou se quiser colaborar em melhorias para o script!
Seja Membro Gratuítamente
Assine a newsletter para receber em seu email as publicações atualizadas neste blog

