Como você criaria um cron que esvazia o correio em todas as caixas de correio?

3

Eu sou novo no Unix aqui.

Temos algumas caixas de correio que ocupam uma quantidade incrível de espaço e estou tentando descobrir uma maneira de excluir todos os e-mails que estão na caixa há 30 dias. A maioria do que eu procuro, lida com apenas uma caixa de correio.

Ainda não fiz muito nesta área e qualquer ajuda seria muito apreciada.

    
por N. Hanks 02.03.2016 / 15:56

1 resposta

3

Se você quiser limpar todo o conteúdo da caixa de correio, exceto talvez root e algum outro usuário protegido, poderá usar algo assim:

for mbox in $(ls /var/spool/mail/*|grep -v -e root -e protecteduser);do >${mbox};done

e agendar no cron para ser executado no primeiro dia de cada mês com

crontab -e 

insira a seguinte linha no final do crontab:

0 2 1 * * /path/to/mailbox/cleaner/script 

isso fará com que o script seja executado no primeiro dia de cada mês às 2h

Por outro lado, se você precisar limpar mensagens com mais de 30 dias em cada caixa de correio, precisará de uma abordagem totalmente diferente. Se esta for sua intenção, atualize sua postagem original.

    
por 02.03.2016 / 16:14