2009/4/15 Cristiano Ferrari <[email protected]>: > Salve ilustres bom dia. > > Preciso enxugar o tamanho e a quantidade de mensagens de um usuário, gravadas > dentro do diretório "cur" do servidor de e-mails. > > O cidadão, que é o dono da empresa, tem mais de 26.000 mensagens em 13gb de > dados. Devido à necessidade do cidadão ter acesso para consultar o histórico > de sua caixa postal em viagens, mesmo que sem a disponibilidade de conexão > com a internet, optamos no passado por não usar IMAP, mas baixar as mensagens > via POP3, deixando uma cópia no servidor, para ser acessada via webmail, ou > para serem recuperadas no caso de um crash no cliente de e-mail. > > Ontem, devido a uma troca deste cliente de e-mail, todas as mensagens > armazenadas tiverem que ser baixadas novamente. > > O problema é que não dá para baixar 13 gb de mensagem. Quando o arquivo da > caixa postal chega perto dos 4 gb, o Thunderbird começa a chiar e dizer que > não há mais espaço para baixar mensagens novas. > > A solução é excluir, dentre as mais 26000 armzenadas no servidor aqueles lixo > que nem deveriam estar alí, como por exemplo vídeos e pps de mensagens > edificantes e outras cositas mais.... > > Pensei então em criar um script que leia o conteúdo de cada mensagem > procurando a string que identifica o remetente e crie um arquivo texto com 2 > colunas: o nome do remetente e o tamanho da mensagem. > > Depois, eu poderia pegar este arquivo e totalizar quantas mensagens e quantos > megas (ou gigas) exitem de cada remetente para orientar ao cidadão ou que eu > poderia deletar do servidor para chegar nos 2-3 gigas que o Thunderbird > suportaria baixar. > > Depois que ele me indicasse os destinatário que eu poderia excluir (aqueles > contatos que todo mundo tem e que só envia futilidades) eu precisaria fazer > outro script para excluir as mensagens destes (mas esta é a parte facil). > > Minha dificuldade está em definir a melhor forma de fazer isso sem ter que > ficar com uma thread rodando por uma semana no servidor. > > Pensei em criar um for (ou while) à partir de um ls no diretório "cur" e à > partir daí usar grep e cut para extrair o endereço do remetente e direcionar > a saída para um arquivo texto. > > Mas acho que isso irá consumir muito recuso. Acho que talvez com o awk eu > consiga algo mais simples e mais eficaz, em termos de uso de processamento, > só não sei como. > > Alguém tem alguma idéia? > > Abraços e obrigado de antemão. > > > Cristiano > > > > ------------------------------------ > > --------------------------------------------------------------------- > 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: [email protected] > --------------------------------------------------------------------- > Esta lista é moderada de acordo com o previsto em > http://www.listas-discussao.cjb.net > --------------------------------------------------------------------- > Servidor Newsgroup da lista: news.gmane.org > Grupo: gmane.org.user-groups.programming.shell.brazil > > Links do Yahoo! Grupos > > >
"Problema" interessante... O comando formail com a opção -l te dará um excelente (e rápido) ponto de partida. Poste os resultados. -- Fabiano Caixeta Duarte Especialista em Redes de Computadores Linux User #195299 Ribeirão Preto - SP
