[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Remover usuarios sem acesso
From: |
Marcos Paulo |
Subject: |
Re: [shell-script] Remover usuarios sem acesso |
Date: |
Wed, 15 Dec 2004 11:52:41 -0200 |
eu uso o script abaixo, de autoria minha.
os arquivos secure.mailadm é um arquivo ja criado para assegurar que contas
como root, e todas as contas do sistema nao serao removidos.
os usuarios pop sao os q tem gid = 231 que sao do grupo popusers
o pid eh pra evitar o cadastramento e a alteracao de qquer conta pela interface
web enquanto este script roda.
qualquer duvida ou sugestao para melhorar o script será bem vinda.
Att.
Marcos
#!/bin/sh
##########################################################################
# #
# #
# SISTEMA PARA ADMINISTRAÇÃO DO WEBMAIL #
# Le o diretório de emails e verifica as contas que não são #
# acessadas em X dias, e apaga-as #
# #
##########################################################################
#DEFINE AS VARIÁVEIS
dias=60
ndir="/var/www/html/webpoint/webmail/mailadm/"
tusers="${ndir}delusers.mailadm"
nbackup="${ndir}backup/"
tsecure="${ndir}secure.mailadm"
pid="${ndir}pid.mailadm"
ful="${ndir}allow.mailadm"
maildir="/var/spool/mail/"
#CRIA O PID
echo "VERIFICANDO USUÁRIOS" > $pid
#LIMPA O BACKUP
#CRIA O ARQUIVO DE USUÁRIOS
find "$maildir" -atime +"${dias}" -type f -printf "%f X\r\n" | sort > $tusers
if [ -s "$tusers" ]; then
while read texto
do
usuario=`echo $texto | cut -f1 -d" "`
pode=`grep "^${usuario}:x" $ful`
npode=`grep "^${usuario};" $tsecure`
if [ "$pode" != "" ]; then
if [ "$npode" = "" ]; then
udt="/var/database/${usuario}_pop.colegiouniversitario.com.br"
#faz backup do mail
if [ -s "${maildir}${usuario}" ]; then
tar -cPzf "${nbackup}${usuario}.tar" "${maildir}${usuario}"
rm -f "${maildir}${usuario}"
fi
#faz backup do webmail
if [ -d "${udt}" ]; then
tar -cPzf "${nbackup}${usuario}_webmail.tar" "${udt}"
rm -rf "${udt}"
fi
/usr/sbin/userdel ${usuario}
fi
fi
done < $tusers
#REMOVE O ARQUIVO DE USUARIOS
rm -f $tusers
fi
#REFAZ A LISTA DE USUARIOS POP
grep -o ".*:x:[0-9]*:231:" /etc/passwd | cut -f1-2 -d":" | sort > $ful
#REMOVE O PID
rm -f $pid
exit 0
----- Original Message -----
From: Pedro Henrique Ponchio
To: address@hidden
Sent: Wednesday, December 15, 2004 12:13 PM
Subject: RE: [shell-script] Remover usuarios sem acesso
Olá Diniz,
Na verdade não é a data de modificação (que se vê como comando ls -la) mas sim
a data do último ACESSO ao arquivo (feito pelo usuário). Portanto o comando (ls
-la --time=access) te dará quando foi o último acesso do usuário ao arquivo
mail. basta filtrar por data pra saber quando foi o último acesso ao email de
cada usuário.
Abraço
PH
-----Original Message-----
From: Diniz Alexandre Daminelli [mailto:address@hidden]
Sent: Tue 14/12/2004 21:16
To: address@hidden
Cc:
Subject: Re: [shell-script] Remover usuarios sem acesso
O que faz este comando?
<ls -la --time=access /var/mail>
na saida simplesmente me mostrou a listagem do diretorio...é isso mesmo?
outras coisa...se sua idéia era pegar a data da ultima modificação do
arquivo,....acho que isso nao funcionará, pois cada vez que o usuario recebe
um e-mail a data é atualizada...assim vai demonstrar erronhamente que ele
está checando seus e-mail's, mas o que está acontecendo na verdade é que ele
está recebendo, mas não necessariamente checando seus e-mail's.
[]'s
Diniz
[As partes desta mensagem que não continham texto foram removidas]
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Links do Yahoo! Grupos
[As partes desta mensagem que não continham texto foram removidas]