メールにパイプすると、上書きする行の代わりに新しい行が作成されます。

メールにパイプすると、上書きする行の代わりに新しい行が作成されます。

複数のサーバーで Maldet を実行し、結果を確認するために cronjob の出力をメールアドレスにリンクしました。この方法は9つのサーバーでうまく機能しますが、10番目のサーバーでは出力が異なります。

通常、私たちは画面の最後の出力を取得しますが、問題のサーバーではすべての出力行を取得します。 Maldetは検索するファイルごとに1行を書き換えるため、画面の行の先頭から返された内容はメッセージの新しい行に出力されます。

例2:

いいね:

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

悪い:

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

ご覧のとおり、すべてのファイルが出力に記載されています。ただし、メールにリダイレクトする場合にのみ該当します。画面にありません。

CentOS Linuxバージョン7.0.1406(コア)を実行しています。

答え1

画面に書き込むと、CR文字はカーソルを行の先頭に移動し、次の文字が前の文字を上書きします。ただし、Maldetは端末に書き込むときにこのメカニズム(および例に示されている制御コード)のみを使用する必要があります。本当の質問は、なぜその奇妙なサーバーのMaldetが出力がパイプではなく画面に出力されると思うのかです。

関連情報