![서비스가 다시 시작된 후 로그 흐름이 시작되는지 확인하는 방법은 무엇입니까?](https://linux55.com/image/221757/%EC%84%9C%EB%B9%84%EC%8A%A4%EA%B0%80%20%EB%8B%A4%EC%8B%9C%20%EC%8B%9C%EC%9E%91%EB%90%9C%20%ED%9B%84%20%EB%A1%9C%EA%B7%B8%20%ED%9D%90%EB%A6%84%EC%9D%B4%20%EC%8B%9C%EC%9E%91%EB%90%98%EB%8A%94%EC%A7%80%20%ED%99%95%EC%9D%B8%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
서비스가 다시 시작된 후 로그 파일 흐름이 시작되었는지 확인하는 것이 확인 단계의 일부인 사용 사례가 있습니까? 그것을 쉽게 달성하는 방법은 무엇입니까?
답변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
로그 메시지의 형식에 타임스탬프가 포함되어 있는 경우 마지막으로 로깅된 메시지의 타임스탬프가 서비스 재시작 시간 이후인지 여부도 확인할 수 있습니다.
그러나 가장 철저한 검증은 서비스에 대해 알려진 유형의 요청을 수행하여 예상할 수 있는 내용이 포함된 메시지를 기록하도록 동기를 부여하는 것입니다. 그런 다음 먼저 로그를 확인하고 파일 크기/위치를 기록한 다음 테스트 요청을 보내고 적절한 시간 동안 기다린 다음 로그된 위치에서 예상 메시지에 대한 로그를 검색할 수 있습니다.