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」(前後の全行)はどこにありますか? > Create file.txt>すべての行をその中に入れます>このファイルを次に電子メールで送信します。[Eメール保護]>

私のスクリプトは次のとおりです(まだ完了していません)。

#!/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

ちょっと待って、読んで学ぶ

関連情報