grep 仅在找到结果时搜索 error_log 和电子邮件?

grep 仅在找到结果时搜索 error_log 和电子邮件?

是否可以使用 Grep 搜索文件并根据结果发送电子邮件?

我一直在使用

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

但我不希望它在遇到 Null 时发送电子邮件(未找到结果)

答案1

mailx如果grep命令返回成功,即找到匹配项,则可以运行:

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]

相关内容