Bash 使用shell脚本和发送邮件进行日志监视

Bash 使用shell脚本和发送邮件进行日志监视,bash,shell,scripting,sh,weblogic12c,Bash,Shell,Scripting,Sh,Weblogic12c,帮助编写脚本。以下是日志格式。 我想写一个脚本,在LIVE log中搜索关键字。假设有人已停止服务器,它将显示关机或强制关机 日志中还显示“服务器关闭已由$user启动” 希望在摊牌时为所有信息服务器IP和服务器主机加上确切的时间戳,并将所有详细信息发送给用户。 请帮助我您可以使用这样的脚本在实时文件中读取:(备注:脚本不读取整个文件,只读取未来的新行) 使用grep #!/bin/bash LOG_FILE="/var/log/foo" SEARCHED="Server shutdown

帮助编写脚本。以下是日志格式。 我想写一个脚本,在LIVE log中搜索关键字。假设有人已停止服务器,它将显示关机或强制关机 日志中还显示“服务器关闭已由$user启动”


希望在摊牌时为所有信息服务器IP和服务器主机加上确切的时间戳,并将所有详细信息发送给用户。
请帮助我

您可以使用这样的脚本在实时文件中读取:(备注:脚本不读取整个文件,只读取未来的新行)

使用
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
解析该行,以提取所需内容并发送它。在谷歌上搜索,你会发现很多例子:)

#!/bin/bash

LOG_FILE="/var/log/foo"

tail -n 0 -f "$LOG_FILE" | while IFS= read -r line; do
     echo $line
done
#!/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