특정 시간 사이의 장치 로그 캡처

특정 시간 사이의 장치 로그 캡처

우리는 작업을 시작하기 전에 /var/log/messages를 지우고 작업 후에 /var/log/messages의 데이터를 분석하는 cron의 테스트 스크립트를 정기적으로 실행합니다. 테스트 시작 시 장치 로그가 지워지므로 이는 예상된 동작이 아닙니다.

테스트 실행 사이에만 장치 로그를 캡처하는 방법 그럼 테스트는 해당 데이터만 분석할 수 있다는 건가요?

답변1

덜 서투른 방법이 있을 수도 있지만 달릴 수는 있습니다.

tail -0f /var/log/messages > captured_logs

테스트 스크립트가 실행될 때 또는 사용

logger -i "Test started"
# ...test script...
logger -i "Test stopped"

(바라보다logger) 및 grep전체 로그의 다음 섹션. 로그가 롤오버되면 어떻게 될지 모르니 주의하세요.더욱 견고해졌습니다해결책은 읽는 것일 수도 있습니다.syslogds 소켓( -p옵션), 예:socat

socat UNIX-CLIENT:/var/run/log STDOUT

STDOUT보다 더 복잡한 것이 귀하의 요구에 더 잘 맞을 수 있습니다. ( 이 소켓에서 로그를 캡처하도록 구성(옵션) syslogd하여 특정 시간에 자체 인스턴스를 실행할 수도 있습니다 .)-a

관련 정보