Linux bash 命令“FIND、OPEN、GREP、SEND” - 具体问题

Linux bash 命令“FIND、OPEN、GREP、SEND” - 具体问题

这是我的目标(我还没有制作脚本,这只是一个想法):

  1. 打开一些日志或文件(例如/opt/log/applications.log:)

  2. 查找所有行,其中“错误(或其他人,我能找到什么)” - 但仅限今天的日期(仅限实际日期 - 例如 23.03.2017 00 00 到 23.03.2017 23 59 )

  3. 如果找到这一行,“ERROR”在哪里(整行,之前和之后)> 创建 file.txt > 将所有行放入其中 > 通过电子邮件将此文件发送至[电子邮件受保护]>

这是我的脚本(尚未完成):

#!/bin/bash   

# Store path to commands
LOGGER=/usr/bin/logger
FILE=/opt/app/ebanking/logs/bussines.log

# Store email settings
AEMAIL="[email protected]"
ASUB="ERROR LINE - $(hostname)"
AMESS="Warning - errors found on $(hostname) @ $(date). See log file for the details /opt/app/ebanking/logs/error.log"
OK_MESS="OK: NO ERROR Found."
WARN_MESS="ERROR: Error Found."


# Check if $FILE exists or not
if test ! -f "$FILE" 
then   
    echo "Error - $FILE not found or mcelog is not configured for 64 bit Linux systems."
    exit 1
fi

# okay search for errors in file
error.log=$(grep -c -i "ERROR" $FILE)

# error found or not?
if [ $error.log -gt 0 ]
then    # yes error(s) found, let send an email
    echo "$AMESS" | email -s "$ASUB" $AEMAIL
else    # naa, everything looks okay
    echo "$OK_MESS"
fi

答案1

cat $filename | grep ERROR | grep "23\.03\.2017" > file.txt

我不知道用于发送电子邮件的命令行工具,通常只是发送电子邮件 file.txt 。在尝试这样做之前,您可能应该了解如何使用管道和 grep 等基础知识。有很多学习资源。

格列普:https://www.youtube.com/watch?v=o1C2Fqjrqgs

寻找:https://www.youtube.com/watch?v=peM8bpmTfTE

重击:http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html

等等,继续阅读和学习

相关内容