المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : سكربت لمعرفه السبامرز مع جدوله للارسال للبريد


MIDO-EGYPT
2009-11-23, 11:58 PM
سكربت لمعرفه السبامرز مع جدوله للارسال للبريد

السلام عليكم .

شخصيا كنت بالماضي أعاني من مصيبة أنه أحيانا تجد اللود على السيرفر عالي وطبعا بما أني السيرفر ادمن ، يجب أن أعرف ما السبب . وبعد تطبيق أشهر الأوامر لمعرفة اللود ... كالعادة سبامر جديد مركب ميل ليست على مساحتة بالسيرفر .

يعني أن احد له عدد الإرسال ب 100 رسالة بالساعة لن يحل الأزمة . بل ما يحل الأزمة سسبند لمساحة هذا السامر . لذا كانت المقولة الحاجة أم الإختراع حق .

نبدأ بعون الله :
بداية أنا أفترض أنه لديك Cpanel + WHM .

1- إفتح لوحة التحكم ال WHM ومن ثم إذهب إلى خيارات تعديل ملف الإكزيم - إذهب إلى الوضع المتطور - وأضف السطور التالية في أول صندوق فارغ :


log_selector = +all
message_logs = false
rfc1413_query_timeout = 0s


2- الان طبق هذا الأمر عن طريق الشل وذللك لتفريغ اللوق الخاص بالبريد :




> /var/log/exim_mainlog
> /var/log/exim_paniclog
> /var/log/maillog
> /var/log/exim_rejectlog
> /var/log/messages
rm -rf /var/log/exim_paniclog.[1-9].gz
rm -rf /var/log/exim_mainlog.[1-9].gz
rm -rf /var/log/exim_rejectlog.[1-9].gz
rm -rf /var/log/messages.[1-9]
rm -rf /var/log/maillog.[1-9]
rm -rf /var/log/secure.[1-9]


واعمل ريستارت للإكزيم .




/etc/init.d/exim restart


3 - الان أفتح ال SSH من جديد . انشئ ملف جديد وسمة php_track_spamers


pico php_track_spamers

وضع فية الكود التالي :




#!/bin/bash
day=`date +%d`
year=`date +%Y`
month=`date +%m`

path="/home"
> /tmp/allpublic_html.txt
all_public_html=`grep '/public_html' /var/log/exim_mainlog > /tmp/allpublic_html.txt`
all_count=`cat /tmp/allpublic_html.txt | wc -l`

if [ $all_count != "0" ]
then
for a in $path/* ; do
if [ $a != "pkgall.sh" ]
then
smart="${a:6}"

nobody_count=`grep /home/$smart/public_html /tmp/allpublic_html.txt | wc -l`
today_nobody_count=`grep '/home/'$smart'/public_html' /tmp/allpublic_html.txt | grep $year-$month-$day | wc -l`
if [ $nobody_count != "0" ]
then
echo $smart "Total ("$nobody_count") Today ("$today_nobody_count")#" `grep /home/$smart/public_html /tmp/allpublic_html.txt |awk '{print $1,$4}' | tail -1`
fi
fi
done
fi
rm -f /tmp/allpublic_html.txt


بعد حفظ الملف ...
يجب علينا أن نقوم بتعديل الصلاحيات :



chmod 755 php_track_spamers


هذا الكود الجميل سوف يقوم بعملية البحث ضمن ملفات اللوق وايجاد التالي :

1- إسم المستخدم لكل مساحة منشة على السيرفر .
2- عدد المرات التي التي قام باستخدام منفذ البريد لإرسال البريد . في اليوم الحالي و الاجمالي
مثال عن أسلوب الإخراج للبيانات :

abuarabh Total (15) Today (2)# 2008-10-04 cwd=/home/abuarabh/public_html
aladibn Total (9) Today (0)# 2008-10-03 cwd=/home/aladibn/public_html/arabic/news
alitijah Total (3) Today (0)# 2008-10-03 cwd=/home/alitijah/public_html/newweb
amalkom Total (8) Today (0)# 2008-10-03 cwd=/home/amalkom/public_html/site
darhiraa Total (13) Today (0)# 2008-10-03 cwd=/home/darhiraa/public_html
f


3- مكان تواجد السكريبت الذي إستخدمة لإرسال البريد . cwd
4- يخطرك بتاريخ أخر إرسال

أفكر بتطوير السكريبت ليكون مع واجهات و إحصائيات كاملة تخزن ضمن SQL ولكن هذا الملف يكفيني وزيادة .

ربما تواجه بطء أحيانا نتيجة عدد المستخديمين الكبير الذي تملكة .


الأن لكي تصلك المعلومات إلى بريدك بشكل يومي .
أضف كورن جوب .



crontab -e


ومن ثم أدخل السطر التالي :


0 18 * * * /php_track_spamers | mail -s 'PHP Mail Useg' myemail@gmail.com (myemail@gmail.com)

استبدل الايميل بايميلك
أنا إفترضت أن صفحة php_track_spamers موجودة مباشرة على / .

وللتشغيل للسكربت



./php_track_spamers


اتمنى الدعاء لي ولكاتب الموضووع بالتوفيق والهدايه :)