로그에서 특정 타임스탬프 + 원하는 문자열을 grep하려고 합니다. 아래 코드를 참조하세요.
month=`echo $(date) | cut -d ' ' -f 2`
zero=0
year=`echo $(date) | cut -d ' ' -f 6`
date1=$zero$(echo $(date) | cut -d ' ' -f 3)
currenttiemstamp=`echo $(date) | cut -d ' ' -f 4`
currenthr=`echo $(date) | cut -d ' ' -f 4 |cut -d ':' -f 1`
currentmin=`echo $(date) | cut -d ' ' -f 4 |cut -d ' ' -f 2`
currentmin1=`expr $(echo $(date) | cut -d ' ' -f 4 |cut -d ':' -f 2) - 6`
x="Error Message"
**Assigning timestamp string to a variable
stringtocheck=$date1" "$month" "$year" "$currenthr":"$currentmin1**
#printing timestamp string
echo "$stringtocheck"
cd /log/
**cat xyz.log |grep "^ "$stringtocheck""|grep "^ "$x""**
위의 cat 명령에서도 작은따옴표를 사용해 보았지만 결과가 나오지 않았습니다.
제가 여기서 뭔가를 하고 있다면 알려주세요. 저는 쉘 스크립팅 세계에 완전히 익숙하지 않습니다.
답변1
답변으로 질문을 마무리하겠습니다
grep "$(date --date="now - 1 minute" +"%d %b %Y %H:%M")" xyz.log | grep "Error message"
마찬가지로 루프를 사용하여 지난 5분을 확인할 수 있습니다.