POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - CALCULA O % DE USO DA QUOTA E ATUALIZA BANCO

Publicado por Alessandro Dias 17/05/2005

[ Hits: 3.521 ]

Download refresh_quota.sh




Esse script recalcula o percentual de utilização da quota do usuário e atualiza o banco. Esse script é executado semanalmente.

  



Esconder código-fonte

#!/bin/sh
#
###############################################################################
#  Script REFRESH_QUOTA.SH v1.0                                                       #
#                                                                             #
#  Autor: Alessandro Dias                                                     #
###############################################################################
#                                                                             #
#  Programa atualizado para trabalhar com SGBD Mysql e uma cota por usuário.  #
#                                                                             #
###############################################################################
#    Este programa calcula o tamanho dos emails recebidos (Entrada + Pastas), #
# e atualiza o uso da quota no banco mysql.                                   #
#    Nao precisa de nenhum pacote adicional, como ldap, mysql, postgre, etc.  #
#    Para instalacao basta alterar as permissoes deste arquivo, e colocalo na #
# pasta /etc/cron.daily para a execucao diaria do script.                     #
#    Alem disso vc deve alterar as variaveis para adaptar ao seu sistema      #
###############################################################################
#
BASEDIR=/var/mail
MYHOSTNAME="venus.rjo.ccom.eb.mil.br"
MYDOMAIN="rjo.ccom.eb.mil.br"
TODOS=`cat /etc/passwd | cut -d : -f 1`
clear
echo "*********************************************************************************************"
echo "*                                 Programa REFRESH_QUOTA.SH 1.0                             *"
echo "*********************************************************************************************"
echo "Autor: Alessandro Dias"
echo "---------------------------------------------------------------------------------------------"
echo "Dados do Usuario: "

  USERNAME=$1 # inicializa USERNAME
if [ "$USERNAME" != "" ]; then
      GRUPO=`groups $USERNAME |cut -d " " -f 3`
      #QUOTA - Tamanho em Bytes (100MBytes)
      QUOTA_MB=$(mysql -u root -ppostfix -e "select quota from user_quota where usuario='$USERNAME'" quota) 
      QUOTA_MB=`echo $QUOTA_MB |cut -d " " -f 2`
      MAILQUOTA=`expr $QUOTA_MB \* 1000000`
      MBOX=`du -ab $BASEDIR/$USERNAME 2>/dev/null | cut -f 1`
      HOME=`du -b /home/$USERNAME/mail | cut -f 1`
      TAMATUAL=`expr $MBOX \+ $HOME`
      TAMATUAL_TMP=`expr $TAMATUAL \* 100`
      MBOX_TMP=`expr $MBOX \* 100`
      HOME_TMP=`expr $HOME \* 100`
      USO_MBOX=`expr $MBOX_TMP / $MAILQUOTA`
      USO_HOME=`expr $HOME_TMP / $MAILQUOTA`
      USO=`expr $TAMATUAL_TMP / $MAILQUOTA`
      echo "U:$USERNAME G:$GRUPO Q:$QUOTA_MB T:(mbox=$MBOX + home=$HOME) = $TAMATUAL U:(mbox=$USO_MBOX% + home=$USO_HOME%) = $USO%"
      # Atualiza a utulização da mbox
      mysql -u root -ppostfix -e "update user_quota set uso=$USO where usuario='$USERNAME'" quota
else 
  echo -e "\nEntre com a sintaxe correta do comando:\n./quota_user.sh <nome_usuario>\n" 
fi
echo -e "---------------------------------------------------------------------------------------------\n"

Scripts recomendados

Backup do Mysql

Script que gera um relatório diário do sistema!!!

Monitoração e coleta de dados de performance de servidores GNU/Linux

Busca de arquivos nas ports FreeBSD

Gera estatísticas de tráfego de pacotes nas interfaces de um servidor linux via SNMPv3.


  

Comentários
[1] Comentário enviado por diaspcf em 07/05/2007 - 15:24h

Caro Usuário,
Tente pegar o script a partir do código fonte, pois parece que o link está quebrado.
Obrigado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts