我有一个用例,其中验证的一部分步骤是验证服务重启后日志文件是否已开始流动?如何轻松实现?
答案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
如果日志消息的格式包含时间戳,您还可以检查最后记录的消息的时间戳是否在服务重新启动时间之后。
但是,最彻底的验证是您是否可以向服务发出已知类型的请求,从而激发它记录包含您可以预期内容的消息。然后,您可以首先检查日志并记下文件大小/位置,然后发送测试请求,等待合适的时间,然后从记录的位置向前搜索日志以查找预期的消息。