Pular para o conteúdo

POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - ATUALIZANDO QUOTA

Esse script altera a quota do usuário no banco, recalcula a utilização e atualiza o banco Quota.
Alessandro Dias diaspcf
Hits: 4.775 Categoria: Shell Script Subcategoria: Avançado
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

Esse script altera a quota do usuário no banco, recalcula a utilização e atualiza o banco Quota.
Download update_quota.sh Enviar nova versão

Esconder código-fonte

#!/bin/sh
#
###############################################################################
#  Script UPDATE_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 UPDATE_QUOTA.SH 1.0                              *"
echo "*********************************************************************************************"
echo "Autor: Alessandro Dias"
echo "---------------------------------------------------------------------------------------------"
echo "Dados do Usuario: "

  USERNAME=$1 # inicializa USERNAME
if [ "$USERNAME" != "" -a "$2" != "" ]; then
      GRUPO=`groups $USERNAME |cut -d " " -f 3`
      #QUOTA - Tamanho em Bytes (100MBytes)
      QUOTA_MB=$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 quota=$QUOTA_MB where usuario='$USERNAME'" quota
      mysql -u root -ppostfix -e "update user_quota set uso=$USO where usuario='$USERNAME'" quota
          # Gera uma Msg de Alteração!
          #Wed, 6 Apr 2005 11:48:47 -0000 (UTC)
          #Convertendo data para ingles
          DIA=`date +%a`
          case $DIA in
          Seg) DIA="Mon" ;; 
          Ter) DIA="Tue" ;; 
          Qua) DIA="Wed" ;; 
          Qui) DIA="Thu" ;; 
          Sex) DIA="Fri" ;; 
          Sab) DIA="Sat" ;; 
          Dom) DIA="Sun" ;; 
          esac
          MES=`date +%b`
          case $MES in
          Abr) MES="Apr" ;; 
          Mai) MES="May" ;; 
          Ago) MES="Aug" ;; 
          Set) MES="Sep" ;; 
          Out) MES="Oct" ;; 
          esac
      DATA_HJ_TMP=`date`
      DATA_HJ=`echo $DATA_HJ_TMP | cut -d " " -f 1,2,3,4,6`
      echo -e "\nFrom postmaster@$MYDOMAIN  $DATA_HJ\nReturn-Path: <postmaster@$MYHOSTNAME>\nX-Original-To: postmaster\nDelivered-To: postmaster@$MYDOMAIN\nReceived: by $MYHOSTNAME (Postfix, userid 0)\nFrom: \"POSTMASTER\" <postmaster@$MYDOMAIN>\nTo: $USERNAME@$MYDOMAIN\nSubject: Quota Alterada! ($QUOTA_MB MB)\nDate: $DIA, `date +%e` $MES `date +%Y` `date +%T` -0000 (UCT)\n\nAtencao: Sua quota de utilizacao foi alterada pelo administrador para $QUOTA_MB MBytes (Uso=$USO%).\n\n--- Resumo de utilizacao: ---\nTamanho(bytes): ( mbox=$MBOX + pastas=$HOME ) = $TAMATUAL\nPercentual: ( mbox=$USO_MBOX% + pastas=$USO_HOME% ) = $USO%\n\n --------------------------\n Secao de Gerencia de Redes\n 2CTA - Div Op - SGRT\n Contatos (2519-5076/5068)\n" >> $BASEDIR/$USERNAME
else 
  echo -e "\nEntre com a sintaxe correta do comando:\n./quota_user.sh <nome_usuario> <nova_quota>\n" 
fi
echo -e "---------------------------------------------------------------------------------------------\n"

Sincronizar arquivos com rsync

Verifica quais ports necessitam de atualização

Obter ip a partir de um NO-IP ou DYNDNS e atualizar o endereço do MUNIN MESTRE em um nó linux.

rc.firewall avançado

Tabela de cores em shellscript

#1 Comentário enviado por diaspcf em 07/05/2007 - 15:23h
Caro Usuário,
Tente pegar o script a partir do código fonte, pois parece que o link está quebrado.
Obrigado.
#2 Comentário enviado por diaspcf em 21/05/2007 - 17:26h
Pessoal, não sei o que está havendo, mas todos os meus scrits estão com esse problema. Já entrei em contato várias vezes com os moderadores pelo email do suporte, mas até agora nenhum retorno!!!
Caso alguem queira o script, me mande uma mensagem com o email que eu mando, ok?
Att.
Alessandro.

Contribuir com comentário

Entre na sua conta para comentar.