假设我有一个脚本,可以使用MD5SUM检查Honeypot位置。

#!/bin/bash
#cryptocheck.sh
#Designed to check md5 CRC's of honeypot files located throughout the filesystem.
#Must develop file with specific hashes and create crypto.chk using following command:
#/opt/bin/md5sum * > crypto.chk
#After creating file, copy honeypot folder out to specific folders

locations=("/share/ConfData" "/share/ConfData/Archive" "/share/ConfData/Application"
"/share/ConfData/Graphics")

for i in "${locations[@]}"
do
        cd "$i/aaaCryptoAudit"
        /opt/bin/md5sum -c /share/homes/admin/crypto.chk
done

输出看起来像这样:

http://pastebin.com/b4au4s6k

如果有“失败”,您将在哪里开始尝试识别输出,也许会触发系统的某种响应?

我已经与Perl一起尝试了以前试图解析日志文件,但是由于某种原因,我的尝试通常会失败。

这可能不是解决这个问题的正确方法,但是我想将此脚本放入每分钟运行的cronjob中。我有些人告诉我,挖掘工作或脚本(我不熟悉这个)比这样做要好。

有什么建议么?

- - 编辑

我制作了另一个脚本来调用上面的脚本并将输出发送到文件。然后,新脚本在“失败”上运行GREP -Q,如果它拾取任何内容,则听起来有警报(TBD,警报将是什么)。

#!/bin/bash
#cryptocheckinit.sh
#

#rm /share/homes/admin/cryptoalert.warn
/share/homes/admin/cryptocheck.sh > /share/homes/admin/cryptoalert.warn
grep -q "FAILED" /share/homes/admin/cryptoalert.warn && echo "LIGHT THE SIGNAL FIRES"
有帮助吗?

解决方案

利用:

if ! /opt/bin/md5sum -c /share/homes/admin/crypto.chk
then 
    # Do something
fi

或管道循环的输出:

for i in "${locations[@]}"
do
        cd "$i/aaaCryptoAudit"
        /opt/bin/md5sum -c /share/homes/admin/crypto.chk
done | grep -q FAILED && echo "LIGHT THE SIGNAL FIRES"
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top