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]