메일로 파이프하면 덮어쓰는 행 대신 새 행이 생성됩니다.

메일로 파이프하면 덮어쓰는 행 대신 새 행이 생성됩니다.

우리는 여러 서버에서 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이 출력이 파이프가 아닌 화면에 출력된다고 생각하는가입니다.

관련 정보