서비스가 다시 시작된 후 로그 파일 흐름이 시작되었는지 확인하는 것이 확인 단계의 일부인 사용 사례가 있습니까? 그것을 쉽게 달성하는 방법은 무엇입니까?
답변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
로그 메시지의 형식에 타임스탬프가 포함되어 있는 경우 마지막으로 로깅된 메시지의 타임스탬프가 서비스 재시작 시간 이후인지 여부도 확인할 수 있습니다.
그러나 가장 철저한 검증은 서비스에 대해 알려진 유형의 요청을 수행하여 예상할 수 있는 내용이 포함된 메시지를 기록하도록 동기를 부여하는 것입니다. 그런 다음 먼저 로그를 확인하고 파일 크기/위치를 기록한 다음 테스트 요청을 보내고 적절한 시간 동안 기다린 다음 로그된 위치에서 예상 메시지에 대한 로그를 검색할 수 있습니다.