سؤال

لنفترض أن لديّ برنامج نصي فحص مواقع Honeypot باستخدام 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

ويبدو الناتج هكذا:

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