Verifica tamanho da inbox + pastas e envia e-mail alertando o usuario
Publicado por Adriano Matos Meier 29/11/2005 (última atualização em 05/11/2013)
[ Hits: 8.356 ]
Download 1383308908.sizee.sh (versão 2)
Fiz esse script para verificar os usuarios que a soma da inbox + pastas ultrapassa os 50MB. Se tiver maior ele manda um e-mail alertando o usuario e vai gerando um log dos e-mails enviados, tamanho das pastas, data, e depois envia ao admin da rede.
Parece meio inutil pois a maioria dos servidores utilizam quota, mas como aqui não tem, ele foi bem util.
Estou postando pois pode ser util para alguem se modificado.
Adaptei ele para verificar as contas dos dominios virtuais tambem.
#!/bin/bash # Script que envia emails personalizados para as contas # que estão com a soma da inbox e home maior que 50Mb. # por Et3rN4L - et3rn4ls@gmail.com # Gera o cabeçalho para o envio do log echo "From: admnet@domain.com.br To: suporte@domain.com.br Subject: Log de e-mails enviados. " > /tmp/enviados.txt # Cria a lista de contas a verificar cat /etc/passwd > /tmp/contas.txt count=$(cat /tmp/contas.txt |wc -l |awk '{print $1}') j=1 env=0 echo "Verificando contas, aguarde..." while [ $j -le $count ] do # Coleta informações em um arquivo de texto # a = Tamanho inbox / b = usuario / c = tamanho home/mail / d = Nome Completo if [ -e /var/spool/mail/`head -n $j /tmp/contas.txt |tail -n 1 |cut -d ":" -f1` ]; then a=$(du -s /var/spool/mail/`head -n $j /tmp/contas.txt |tail -n 1 |cut -d ":" -f1` |awk '{print $1}') else a=0 fi b=$(head -n $j /tmp/contas.txt |tail -n 1 |cut -d ":" -f1) d=$(head -n $j /tmp/contas.txt |tail -n 1 |cut -d ":" -f5) dir=$(head -n $j /tmp/contas.txt |tail -n 1 |cut -d ":" -f6 |awk '{print $1 "/mail"}') # Testa se existe o diretorio mail no home do usuario if [ -e $dir ]; then c=$(du -s $dir |awk '{print $1}') else c=0 fi total=`expr $a + $c` if [ $total -ge 50000 ]; then # Gera corpo do email echo "From: admnet@domain.com.br To: $b@domain.com.br Subject: Limpeza na conta de e-mail. Caro(a) $d, Informamos que a sua conta de e-mails (caixa de entrada e demais pastas) superou o tamanho de 50000 KB (tamanho atual = $total KB) e para garantir um bom funcionamento do servidor de e-mails pedimos que verifique seus e-mails e exclua as mensagens desnecessárias. Você pode fazer isso acessando o nosso WebMail no endereço http://webmail.domain.com.br ou pelo seu programa de e-mail favorito. Caso você receba suas mensagens em algum programa (Ex. Outlook Express), esteja certo de que ele não esteja salvando uma cópia da mensagem no servidor após receber. É interessante que você faça isso o quanto antes para evitar problemas futuros, pois muito em breve serão aplicadas quotas em todas as contas de e-mail. ESTA MENSAGEM É AUTOMÁTICA E NãO É NECESSÁRIO RESPONDÊ-LA !!! Qualquer dúvida a respeito favor entrar em contato com o HelpDesk. Atenciosamente, ----------------------------------------- A Administração da Rede admnet@domain.com.br EMPRESA/SC Fone: (48) 3239.5888 http://www.domain.com.br -----------------------------------------" > /tmp/mail.txt # Envia email sendmail -i $b@domain.com.br < /tmp/mail.txt echo "Email enviado para $b@domain.com.br - Tamanho $total - `date`" >> /tmp/enviados.txt env=`expr $env + 1` fi # Incrementa "j" j=`expr $j + 1` done # Envia o log para a admnet if [ $env -gt 0 ]; then sendmail -i admnet@domain.com.br < /tmp/enviados.txt fi # Remove arquivos temporarios rm /tmp/mail.txt >/dev/null 2>&1 </dev/null rm /tmp/enviados.txt >/dev/null 2>&1 </dev/null rm /tmp/contas.txt echo echo "Terminado !!" echo "$count contas verificadas !!" echo "$env emails enviados !!" echo
Instalador do MPlayer e mais algumas coisas
Importar vários Emolticons de uma vez para amsn
Envia mensagens para o serviço mensageiro do windows facilmente
Acertando a hora da estação com o Observatório Nacional
Screenshot automático em Shell Script
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
SysAdmin ou DevOps: Qual curso inicial pra essa área? (0)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código (3)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta