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