Piping to mail resulta em novas linhas em vez de linhas sobrescritas

0

Estamos executando a maldet em vários servidores e enviamos a saída dos cronjobs para um endereço de e-mail para verificar os resultados. Para 9 servidores isso funciona bem, mas com o 10º servidor a saída é diferente.

Normalmente, obtemos a última saída da tela, mas com o servidor de problemas, obtemos todas as linhas da saída. Maldet reescreve 1 linha para cada arquivo que digitalizou, de modo que o retorno ao início da linha na tela é enviado para uma nova linha no correio.

2 exemplos:

Bom:

maldet(30251): {scan} setting nice scheduler priorities for all operations: cpunice 19 , ionice 6
maldet(30251): {scan} file list completed in 172s, found 3850 files...
maldet(30251): {scan} found clamav binary at /usr/bin/clamscan, using clamav scanner engine...
maldet(30251): {scan} scan of / (3850 files) in progress...

**maldet(30251): {scan} scan completed on /: files 3850, malware hits 0, cleaned hits 0, time 316s** maldet(30251): {scan} scan report saved, to view run: maldet --report 160707-0016.30251

BAD:

maldet(2198): {scan} 3577/3587 files scanned: 0 hits 0 cleaned[1Gmaldet(2198): {scan} 3578/3587 files scanned: 0 hits 0 cleaned[1Gmaldet(2198): {scan} 3579/3587 files 
scanned: 0 hits 0 cleaned[1Gmaldet(2198): {scan} 3580/3587 files scanned: 0 hits 0 cleaned[1Gmaldet(2198): {scan} 3581/3587 files scanned: 0 hits 0 cleaned[1Gmaldet(2198): {scan} 3582/3587 files scanned: 0 hits 0 
cleaned[1Gmaldet(2198): {scan} 3583/3587 files scanned: 0 hits 0 cleaned[1Gmaldet(2198): {scan} 3584/3587 files scanned: 0 hits 0 cleaned[1Gmaldet(2198): {scan} 3585/3587 files scanned: 0 hits 0 cleaned[1Gmaldet
(2198): {scan} 3586/3587 files scanned: 0 hits 0 cleaned[1Gmaldet(2198): {scan} 3587/3587 files scanned: 0 hits 0 cleaned
maldet(2198): {scan} scan completed on /: files 3587, malware hits 0, cleaned hits 0, time 654s
maldet(2198): {scan} scan report saved, to view run: maldet --report 160707-0045.2198

Como você pode ver, todos os arquivos são mencionados na saída. Mas somente quando redirecionando para email. Não na tela.

Estamos correndo CentOS Linux versão 7.0.1406 (Core)

    
por Frank 07.07.2016 / 16:27

1 resposta

1

Ao escrever para a tela, o caractere CR faz com que o cursor se mova para o início da linha, fazendo com que os seguintes caracteres sobrescrevam o que estava lá anteriormente. No entanto, a maldet deve usar esse mecanismo (e os códigos de controle visíveis em seu exemplo) apenas ao gravar em um terminal. A verdadeira questão é por que a maldet nesse servidor estranho pensa que sua saída é uma tela e não um pipe.

    
por 07.07.2016 / 16:49

Tags