有人能给我一些亮光,指向正确的方向吗?
我想在bash中创build一个脚本,在Tomcat应用程序启动期间检查日志中的exception。 这个脚本应该能够通过inotify来dynamic检测新文件的创build。
该脚本应该不断检查日志文件中新行的日志目录,并将包含单词Exception:或ERROR文件写入/var/log/errorcheckernotifier.txt 。
当脚本检测到这一行INFO: Server startup in时应该在/var/log/errorcheckernotifier.txt写入TOMCAT IS STARTED ,并在启动过程中检测到exception的数量。
这个脚本不应该覆盖errorcheckernotifier.txt中的errorcheckernotifier.txt 。 追加它。
我怎样才能保持这个脚本运行,并检测进一步的启动,计数exception等
我可以给你我的tomcat初始化脚本的“开始”部分,如果有帮助的话。
开始)
echo -n“Starting $ FOO_BASE_JM”
##用startproc(8)启动守护进程。 如果失败了
##返回值由startproc适当设置。
如果ps -efwwwwwwwwwwwwww | grep java | grep -q“$ FOO_BASE_JM”; 然后
回声“处理$ FOO_BASE_JM已经存在”
rc_failed 1
其他
LOGLINES = $(cat /opt/$FOO_BASE_JM/logs/catalina.out | wc -l)
导出CATALINA_OPTS
######## / sbin / startproc $ FOO_BIN
if [“$(id -un)”=“tomcat”]; 然后
$ FOO_BIN start || rc_failed 1
其他
/ bin / su tomcat $ FOO_BIN start || rc_failed 1
科幻
回声-n“等待进程出现”
重量= 0
process_seen =真
而! ps -efwwwwwwwwwwwwww | grep java | grep -q“$ FOO_BASE_JM”; 做
睡2
回声-n。
重量= $(($重量+ 1))
if [“$ wt”-gt 30]; 然后
回声
回声“超时:看不到进程,你应该检查日志。
rc_failed 1
process_seen = FALSE
打破
科幻
DONE
如果[“x $ process_seen”=“xtrue”]; 然后
回声
回声-n“等待启动”。
重量= 0
而! tail + $ LOGLINES /opt/$FOO_BASE_JM/logs/catalina.out | grep -q“INFO:服务器启动”; 做
睡2
回声-n。
重量= $(($重量+ 1))
if [“$ wt”-gt 30]; 然后
回声
回声“超时:找不到日志中成功启动服务器的迹象,请检查。”
rc_failed 1
打破
科幻
DONE
tail + $ LOGLINES /opt/$FOO_BASE_JM/logs/catalina.out | grep -q“INFO:服务器启动”&& tail + $ LOGLINES / opt / $ FO
O_BASE_JM / logs / catalina.out | grep“信息:服务器启动”
科幻
fi#如果没有进程存在
#记住状态和详细
rc_status -v
;;
作为替代,我可以build议使用像Nagios这样的监视工具,在catalina.out文件(或者任何你要login的地方)指向它的一个日志监视插件,然后search新的错误string或者任何你感兴趣的东西。 在我们的Oracle数据库上,完美的工作。