这是我的目标(我还没有制作脚本,这只是一个想法):
打开一些日志或文件(例如
/opt/log/applications.log
:)查找所有行,其中“错误(或其他人,我能找到什么)” - 但仅限今天的日期(仅限实际日期 - 例如 23.03.2017 00 00 到 23.03.2017 23 59 )
如果找到这一行,“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
等等,继续阅读和学习