Pular para o conteúdo

Postfix - Listar usuários com over quota

Exibir todos os usuários com over quota. No meu caso, os usuários localizados no diretório /home/remote/.
Thiago thiagoams
Hits: 5.948 Categoria: Shell Script Subcategoria: Avançado
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

Exibir todos os usuários com over quota. No meu caso, os usuários localizados no diretório /home/remote/.
Download Listar_Quota.sh Enviar nova versão

Esconder código-fonte

#!/bin/bash

#DefaultQuotaSize="50"

cd /home/remote/

function usage() {
        echo "Usage: $0 [options]"
        echo
        echo "-a|--all          Exibir todos usuarios com overquota"
        echo "-v|--verbose              Trabalha com -a e ainda exibe todos users/quota"
        echo "-u|--user <username>      Exibir apenas um usuario especifico."
        echo
        echo "Exemplo:  $0 --user username"
        echo "          $0 -a -v"
        exit 1
}

if [ $# -lt 1 ]; then
        usage
fi

# Setting default values
Verbose=0
ShowAll=0

while [ -n "$1" ]; do
        case "$1" in
                '-u'|'--user')
                        list="$2"
                        shift
                        ;;
                '-a'|'--all')
                        ShowAll=1
                        list='*'
                        ;;
                '-v'|'--verbose')
                        Verbose=1
                        ;;
                *)
                        usage
                        break
                        ;;
        esac
        shift
done

ReturnValue=0
for user in $(echo $list); do
        if [ -f ${user}/Maildir/maildirsize ]; then
                QuotaSize="$(sed -n '1s/S//p' ${user}/Maildir/maildirsize)"
                let QuotaSize/=1024*1024
                if [ "${QuotaSize}" == "" ]; then
                        QuotaSize=${DefaultQuotaSize}
                fi
                DiskUsage="$(sed -rn '2,$s/([-0-9]+) (.*$)/\1/p' ${user}/Maildir/maildirsize | paste -sd+ | bc)"
                let DiskUsage/=1024*1024
                if [ ${ShowAll} -eq 1 ]; then
                        if [ ${QuotaSize} -ne 0 ] && [ ${DiskUsage} -ge ${QuotaSize} ]; then
                                echo "User: $user - DiskUsage: ${DiskUsage}M - Quota: ${QuotaSize}M ### OVERQUOTA ###"
                        elif [ ${Verbose} -eq 1 ]; then
                                echo -n "User: $user - DiskUsage: ${DiskUsage}M - Quota: "
                                if [ ${QuotaSize} -eq 0 ]; then
                                        echo "UNLIMITED"
                                else
                                        echo "${QuotaSize}M"
                                fi
                        fi
                else
                        if [ ${QuotaSize} -ne 0 ] && [ ${DiskUsage} -ge ${QuotaSize} ]; then
                                echo "User: $user - DiskUsage: ${DiskUsage}M - Quota: ${QuotaSize}M ### OVERQUOTA ###"
                                ReturnValue=1
                        else
                                echo -n "User: $user - DiskUsage: ${DiskUsage}M - Quota: "
                                if [ ${QuotaSize} -eq 0 ]; then
                                        echo "UNLIMITED"
                                else
                                        echo "${QuotaSize}M"
                                fi
                        fi
                fi
        fi
done

exit ${ReturnValue}

Correção Bug Kurumin/Som on-boad

backup com scp

Faq Fedora 10

Administrar squid com autenticação, simples e objetivo.

Script para Monitoramento

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.