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 > 모든 줄을 그 안에 넣습니다 > 이 파일을 다음으로 이메일로 보냅니다.[이메일 보호됨]>

내 스크립트는 다음과 같습니다(아직 완료되지 않음).

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

잠깐만요, 계속 읽고 배우세요

관련 정보