Usando a operação grep para minha caixa de entrada de correio local

0

Eu estou tentando gravar cada e-mail enviado para minha caixa de entrada local do trabalho cron em outro arquivo txt . Quando eu uso a linha

mail | grep cron > cron_mail.txt

a operação não pára e cria um cron_mail.txt vazio .

Como eu consertaria isso ou há uma maneira mais fácil de concluir essa operação no bash?

    
por thenewbie 09.06.2017 / 09:34

2 respostas

0

Parece que o e-mail é enviado para o fluxo de erro padrão, para que não seja canalizado para o grep, já que apenas a saída padrão é canalizada.

Experimente mail 2>&1 | grep cron > cron_mail.txt

2 é o descritor de arquivo do fluxo de erro padrão, e com o comando acima, ele será redirecionado para a saída padrão, que por sua vez será canalizada.

    
por 09.06.2017 / 10:42
0

Se o seu spool de correio local for um arquivo de caixa de correio do Berkeley, tente

grep '^From cron  ' "$MAIL"

Isso depende do fato de os arquivos mbox Berkeley usarem uma linha que começa com From , o endereço do envelope do remetente e dois espaços (geralmente seguidos pelo horário de chegada da mensagem) como a linha separadora antes de cada nova mensagem. (Uma conseqüência disso é que o corpo da mensagem não pode conter os cinco caracteres From no início da linha em qualquer lugar.) Se as mensagens do daemon cron contiverem, e. um nome de domínio FQDN, você obviamente precisará adaptar o regex.

Berkeley mbox costumava ser onipresente, mas atualmente, muitos sistemas usam outros formatos de caixa de correio, muitos dos quais são baseados em pasta, em vez de um único arquivo simples. Para maildir, um formato comum especialmente para caixas de correio IMAP, tente

find new cur tmp -type f -exec grep -m 1 '^From:' /dev/null | grep cron

que examina o cabeçalho From: em cada mensagem (isso é diferente da linha separadora de Berkeley com o mesmo nome, que não é um cabeçalho de e-mail). Você executaria isso na pasta que deseja examinar ou incluiria o caminho completo para os subdiretórios new , cur e tmp nos argumentos do diretório.

    
por 11.06.2017 / 18:44

Tags