로그에 해당 구문 로깅시 출력 메시지

익명 사용자의 이미지

지금 crontab으로 스크립트 파일을 돌렸을 때
/var/log/syslog에 'CMD (/home/swim/SCRIPTS/insert.sh)' 해당 로그가 남았을 때에
정상동작 메시지가 출력이 되고 해당 로그가 남지 않았을 경우에 동작에러라는 메시지를
출력하는 스크립트를 만들려고 합니다.

아래와 같이 스크립트를 작성을 했는데 해당 스크립트가 동작이 되지 않고
인수가 많다라는 에러메시지가 떠서 질문을 드립니다.
if문에서 조건문이 잘못이 된건지 아니면 '나 " 를 잘못쓴건지 의견 부탁드립니다.

#!/bin/bash

sleep 1

LOG="/var/log/syslog"

if [ grep -w 'CMD (/home/swim/SCRIPTS/insert.sh)' $LOG ] ; then
echo "insert crontab 동작 완료"
else
echo "crontab 동작 에러"
fi

pynoos의 이미지

test 명령의 동의어인 '[' 을 빼고 해보세요.
그리고 grep의 -q 옵션도 유용합니다.

ymir의 이미지

$ if grep -q 'CMD /path/to/insert.sh' $LOG; then echo done; else echo error; fi
 
또는
 
$ grep -q 'CMD /path/to/insert.sh' $LOG && echo done || echo error
 
또는
 
$ grep -q 'CMD /path/to/insert.sh' $LOG
$ [ $? -eq 0 ] && echo done || echo error

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』