Ama*_*ith 4 linux bash cron grep
#!/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
Run Code Online (Sandbox Code Playgroud)
即使没有找到任何内容,它仍会发送电子邮件.
如果有东西被掠过,那么只能发送什么?
只需-E在邮件命令中使用switch:
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
Run Code Online (Sandbox Code Playgroud)
或者将支票crontab自动处理,每天一次:
@daily ( /usr/src/chkrootkit-$VERSION/chkrootkit ) | grep 'INFECTED|Vulnerable'
Run Code Online (Sandbox Code Playgroud)
如果命令输出某事,Cron将发送邮件.
如果不需要在警报中转发邮件的任何部分,则无需使用管道 |.
所以你可以用这种方式使用条件:
#!/bin/bash
( /usr/src/chkrootkit-$VERSION/chkrootkit ) | # Binary
grep -q 'INFECTED|Vulnerable' &&
/bin/mail -s 'CHROOTKIT Weekly Run ($SERVERNAME)' $EMAIL
Run Code Online (Sandbox Code Playgroud)
该-q开关,grep确保保持沉默.