
#!/bin/bash ( /usr/src/chkrootkit-$VERSION/chkrootkit ) | # Binary grep 'INFECTED|Vulnerable' | # Only get found issues /bin/mail -s 'CHROOTKIT Weekly Run ($SERVERname)' $EMAIL # Send EMail
即使没有发现,这仍然发送电子邮件。
如果有什么东西被grepped,什么才会发送?
为什么在这个shell脚本中的结束时间与开始时间相同?
linux shellpipe道是stream水线的吗?
Bash文件存在检查丢失]
比较2个Unix文件和输出匹配行到一个新的文件?
linux shell:为数字输出添加点,使其更具可读性
这可能…
只需在邮件命令中使用-E开关:
man -Pcol -b mail | grep empty -E Don't send messages with an empty body. #!/bin/bash ( /usr/src/chkrootkit-$VERSION/chkrootkit ) | # Binary grep 'INFECTED|Vulnerable' | # Only get found issues /bin/mail -E -s 'CHROOTKIT Weekly Run ($SERVERname)' $EMAIL # Send EMail
或将您的支票放在一个crontab进行自动处理,例如每天一次:
@daily ( /usr/src/chkrootkit-$VERSION/chkrootkit ) | grep 'INFECTED|Vulnerable'
如果命令输出的话,Cron会发送一个邮件。
但是,重新读这个之后
如果不需要在警报中转发任何部分邮件,则不需要使用管道 | 。
所以你可以这样使用条件 :
#!/bin/bash ( /usr/src/chkrootkit-$VERSION/chkrootkit ) | # Binary grep -q 'INFECTED|Vulnerable' && /bin/mail -s 'CHROOTKIT Weekly Run ($SERVERname)' $EMAIL
-q切换到grep确保保持安静。
对于GNU Mailutils,你可以用-E'set nonullbody做这样的事情:
grep whatever wherever | mailx -E'set nonullbody' -s EMAIL_SUBJECT your_email_address@example.com
请参阅http://mailutils.org/manual/HTML_section/mail.HTML:nullbody
类型:布尔值
默认值:True
控制邮件是否接受空的邮件。 默认值true表示发送这样的消息,并显示一个警告(传统上说'空消息正文;希望没关系')。 警告的文本可以使用nullbodymsg变量设置(见下文)。
如果nullbody未设置,邮件将默默地忽略这样的消息。 这可以在'crontab'文件中有用,避免发送重要信息时发送邮件。 例如,下面的“crontab”条目只会在实用程序some-prog输出标准输出或错误时发送邮件:
只要把上面的cron的一些时间表:
*/5 * * * * some-prog 2>&1 | /bin/mail -E'set nonullbody' -s 'Periodic synchronization'
#!/bin/bash ( /usr/src/chkrootkit-$VERSION/chkrootkit ) | # Binary grep 'INFECTED|Vulnerable' # Only get found issues if [ $? -eq 0 ] /bin/mail -s 'CHROOTKIT Weekly Run ($SERVERname)' $EMAIL # Send EMail fi
grep如果找到一个匹配返回一个非零的退出码,否则返回0。 我们只需要检查最后一个返回值(这是grep的返回值),并有条件地发送邮件。
总结以上是内存溢出为你收集整理的如果发现有问题,只能发送电子邮件全部内容,希望文章能够帮你解决如果发现有问题,只能发送电子邮件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)