最近遇到一个问题,需要获取tomcat和dubbo应用的启动日志,由于这些服务的启动日志都会写入各自的日志文件中,于是想到截取这个服务的日志中启动部分,启动结束后结束进程。
获取tomcat日志:
#!/usr/bin/env bash
tomcatPath=$1
read_line()
{
read
flag=1
while [ $? -eq 0 ]&& [[ $flag -eq 1 ]]
do
msg=$REPLY
echo $REPLY
if [[ $msg =~ "Server startup in " ]] #当日志打印到此处,脚本进程捕获,将脚本停止
then
flag=2
kill `ps -ef|grep 'tail -f ${tomcatPath}/logs/catalina.out'|grep -v grep|awk '{print $2}'`
else
read
fi
done
}
echo "'tail -f ${tomcatPath}/logs/catalina.out -n 5' | read_line"
tail -f ${tomcatPath}/logs/catalina.out -n 5 | read_line
获取dubbo服务启动日志:
#!/usr/bin/env bash
configPath=$1
read_line()
{
read
flag=1
while [ $? -eq 0 ]&& [[ $flag -eq 1 ]]
do
msg=$REPLY
echo $REPLY
if [[ $msg =~ "SpringContainer started " ]] #当日志打印到此处,脚本进程捕获,将脚本停止
then
flag=2
kill `ps -ef|grep 'run.log'|grep -v grep|awk '{print $2}'`
else
read
fi
done
}
echo "'tail -f ${configPath}/../logs/run.log -n 5' | read_line"
tail -f ${configPath}/../logs/run.log -n 5 | read_line