假设我有一个使用md5sum检查蜜罐位置的脚本。
#!/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
输出看起来像这样:
如果存在'FAILED',您会在哪里开始尝试识别输出并可能触发系统的某种响应?
我曾经使用PERL尝试解析日志文件,但我的尝试通常因为某种原因而惨遭失败。
这可能不是解决这个问题的正确方法,但是我想把这个脚本放到每分钟运行一次的cronjob中。我有些人告诉我,一个inotify工作或脚本(我不熟悉这个)会比这样做更好。
有什么建议吗?
---编辑
我制作了另一个脚本来调用上面的脚本并将输出发送到文件。然后新脚本在'FAILED'上运行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"
答案 0 :(得分:2)
使用:
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"