帮助编写脚本。以下是日志格式。 我想编写一个在LIVE日志中搜索关键字的脚本。假设有些人已停止服务器,它将显示shutdown或force_shutdown 它还在日志中显示“服务器关闭已由$ user启动”。
<Apr 19, 2017 1:11:00 PM EDT> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STARTING>
<Apr 19, 2017 1:11:06 PM EDT> <Notice> <Log Management> <BEA-170027> <The Server has established connection with the Domain level Diagnostic Service successfully.>
<Apr 19, 2017 1:11:06 PM EDT> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to shutdown>
<Apr 19, 2017 1:11:06 PM EDT> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to force_shutdown>
<Jan 9, 2008 6:50:30 PM EST> <Notice> <WebLogicServer> <BEA-000388> <JVM
called WLS shutdown hook. The server will force shutdown now>
<Jan 9, 2008 6:50:30 PM EST> <Alert> <WebLogicServer> <BEA-000396> <Server shutdown has been requested by <WLS Kernel>>
<Jan 9, 2008 6:50:30 PM EST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to FORCE_SHUTTING_DOWN>
想要显示所有信息服务器IP和服务器主机,并在显示时显示确切的时间戳,以及向哪个用户发送邮件,并向用户发送包含所有详细信息的用户。 请帮帮我
答案 0 :(得分:0)
您可以使用以下脚本实时读取文件:(备注:脚本不读取整个文件,只读取新的未来行)
#!/bin/bash
LOG_FILE="/var/log/foo"
tail -n 0 -f "$LOG_FILE" | while IFS= read -r line; do
echo $line
done
您可以使用grep
#!/bin/bash
LOG_FILE="/var/log/foo"
SEARCHED="Server shutdown"
tail -n 0 -f "$LOG_FILE" | while IFS= read -r line; do
if [ $(echo "${line}" | grep "${SEARCHED}") ] ; then
echo "String find in : $line"
fi
done
最后一部分,您可以使用awk
解析该行以提取您想要的内容并发送它。在Google上搜索,您可以找到很多示例:)