이것이 내 목표입니다(아직 스크립트를 작성하지 않았으며 단지 아이디어일 뿐입니다).
일부 로그나 파일을 엽니다(예
/opt/log/applications.log
: : )"오류(또는 다른 사람, 내가 무엇을 찾을 수 있는지)"가 있는 모든 행을 찾습니다. 단, 오늘 날짜만 찾습니다(실제 날짜만 해당 - 예: 23.03.2017 00 00 ~ 23.03.2017 23 59 )
이 줄이 발견되면 "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
잠깐만요, 계속 읽고 배우세요