POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - ATUALIZANDO QUOTA
Publicado por Alessandro Dias 17/05/2005
[ Hits: 4.478 ]
Esse script altera a quota do usuário no banco, recalcula a utilização e atualiza o banco Quota.
#!/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"
Script para tirar relatorios de acesso discado
Monitorar status de transferência das interfaces de rede
video2gif: converta videoclipes em GIFs animados
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
O que esta havendo com o mercado de ti? (9)
Não consigo cadastrar nenhuma conta online (5)
Hotspot Mikrotik nao carrega pagina de login. (0)