tomcat日志有大有小,小编接触的日志,一般都是10G左右,要定位到服务出问题时的日志,把整个日志拿出来是不现实的,UE都打不开,如果是紧急情况,拿日志、打开日志都是一个漫长的过程。
因此,小编一般通过grep获取故障发生的大概时间的日志的行数,一个开始行、一个结束行
开始行:(
双引号里的关键字,是每次请求前的固定字样加上时间,这样定位的行数准备;还有需要特别注意,特殊字符需要用\转义
)
grep -an "\[dw\] 2020-04-15 08:34:01" /opt/tomcat/logs/catalina.2019-11-29.out|sed -n '1p'|awk '{print $1}'|cut -d ':' -f 1
结束行:
grep -an "\[dw\] 2019-11-29 11:52:01" /opt/tomcat/logs/catalina.2019-11-29.out|sed -n '$p'|awk '{print $1}'|cut -d ':' -f 1
获取到行数后,再通过sed截取两者之间的内容,输出到新文件中,这样的内容就不大,而且这个过程也很快(特别注意:命令中加粗
p
,一定不能漏了)
sed -n "60915,62959
p
" /opt/tomcat_dd3/logs/catalina.2020-09-16.out > /partner/shell_dir/20200916.out
总结:tomcat常看,常用,就会有自己的一些技巧产生,所谓“孰能生巧”。