grep은 결과가 발견되면 error_log 및 이메일만 검색합니까?

grep은 결과가 발견되면 error_log 및 이메일만 검색합니까?

Grep을 사용하여 파일을 검색하고 결과에 따라 이메일을 보낼 수 있습니까?

나는 사용해왔다

grep SEARCHSTRING /logs/error_log | mailx -s subject [email protected]

하지만 Null이 발생하면 이메일을 보내는 것을 원하지 않습니다(결과 없음).

답변1

mailxgrep명령이 성공을 반환 하면 , 즉 일치하는 항목이 발견되면 다음을 실행할 수 있습니다.

body="$(grep SEARCHSTRING /logs/error_log)" && echo "$body" | mailx -s subject [email protected]

출력 grep(있는 경우)을 변수에 저장하고 명령이 성공 body하면 grep메시지 본문으로 실행합니다 mailx.$body

답변2

output="$(grep SEARCHSTRING /logs/error_log)"
test -n "$output" && echo "$output" | mailx -s subject [email protected]

관련 정보