如何访问带有时间戳的服务器日志?

如何访问带有时间戳的服务器日志?

我的服务器日志名称为:

server.log.2020-12-01 server.log.2020-12-02 server.log.2020-12-03 server.log.2020-12-02

我想检查它是否每天更新并打印最后几行作为输出(如果日志存在)。

我尝试这样做

Present_log=find  /home/username/example_server_logs/server.log.$(date +%Y-%m-%d)
echo "tail -2 /home/username/example_server_logs/server.log.$(date +%Y-%m-%d) | grep $(date +%Y-%m-%d)" 

但这并没有帮助

答案1

以下是您可以执行此操作的方法:

# save the current logfile name in a variable once for all
Present_log="/home/username/example_server_logs/server.log.$(date +%Y-%m-%d)"

if [ -f "$Present_log" ]; then # checking whether today's logfile exists
    # dealing with today's logfile
    # you may add further processing of the logfile here if required
    tail -2 "$Present_log"
else
    echo 'no logfile found'
fi
  • 你不能做类似的事情myVariable=find...。如果要将命令的结果检索到变量中,则必须使用$(...)运算符:myVariable=$(find...)
  • 你不需要,find因为你已经知道完整路径+文件名
  • 更多关于[ -F ...]操作员
  • 你想用这条echo "tail ..."线实现什么还不清楚。tailgrep而其他人实际上输出文本(当然取决于他们的输入+参数)并且不需要echo显示结果。如果没有显示任何内容,通常意味着没有找到任何内容。

相关内容