서비스가 다시 시작된 후 로그 흐름이 시작되는지 확인하는 방법은 무엇입니까?

서비스가 다시 시작된 후 로그 흐름이 시작되는지 확인하는 방법은 무엇입니까?

서비스가 다시 시작된 후 로그 파일 흐름이 시작되었는지 확인하는 것이 확인 단계의 일부인 사용 사례가 있습니까? 그것을 쉽게 달성하는 방법은 무엇입니까?

답변1

tail -f나는 당신이 "문제의 로그 파일이 있고 새 메시지가 계속 나타나는지 확인하는 것"보다 더 엄격한(아마도 자동화에 더 적합한) 것을 원한다고 가정합니다.

서비스에 전용 로그 파일이 있고 서비스가 실제 쓰기를 위해서만 파일을 여는 경우 파일의 마지막 수정 시간이 프로세스를 다시 시작한 시간 이후인지 확인하는 것이 가장 쉬울 수 있습니다.

그것은 다음과 같습니다:

starttime=$(date +%s)
# <insert command to start service here>
sleep 5   # wait for an appropriate time for service startup
filetime=$(stat -c %Y <insert logfile pathname here>)
if [ $filetime -gt $starttime ]
then
    echo "SUCCESS: service wrote at least one new log entry"
else
    echo "FAIL: no new log entries detected"
fi

로그 메시지의 형식에 타임스탬프가 포함되어 있는 경우 마지막으로 로깅된 메시지의 타임스탬프가 서비스 재시작 시간 이후인지 여부도 확인할 수 있습니다.

그러나 가장 철저한 검증은 서비스에 대해 알려진 유형의 요청을 수행하여 예상할 수 있는 내용이 포함된 메시지를 기록하도록 동기를 부여하는 것입니다. 그런 다음 먼저 로그를 확인하고 파일 크기/위치를 기록한 다음 테스트 요청을 보내고 적절한 시간 동안 기다린 다음 로그된 위치에서 예상 메시지에 대한 로그를 검색할 수 있습니다.

관련 정보