Grep and email results, if any

Hello, I am trying to have a script on my Centos 6.5 server send me an email if grep finds particular content inside, for instance, the maillogs.

So I wrote this and put it in the cron.daily directory:


grep -H "spamhaus" /var/log/maillog* | mail -s "Blacklist Alert!"

Open in new window

It works, but my problem is I'll get an email even when nothing is found and the body is empty.

So, is there a way to have mail not send anything if the body is empty? I know other mail software can do this with a -E option, but it doesn't seem to work with mail.

Thanks for your help.
Daniele BrunengoIT Consultant, Web DesignerAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Use a variable and add an "if" condition:

if R=$(grep -H "spamhaus" /var/log/maillog*);  then
      echo "$R" | mail -s "Blacklist Alert!"

If you prefer the shorter "one-liner" version:

R=$(grep -H "spamhaus" /var/log/maillog*) && echo "$R" | mail -s "Blacklist Alert!"

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Daniele BrunengoIT Consultant, Web DesignerAuthor Commented:
Love the shortest version! I'm a linux beginner, couldn't have done it without your help. Thanks!
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.