LINUX.ORG.RU
ФорумAdmin

написал скрипт но работает через раз! посоветуйте в чем дело


0

0

C MTA sendmail я перешол на постфикс и обнаружилось, что в работе со спамфильтром spamassassin у них подходцы разные, если spamass-milter для сендмыла прекрасно резал спам какой скажу то для постфикса такого подхода не было! спам помечается как спам но кто его должен резать непонятно, в настройках связки постфикса с доктором вебом и спамассассином предлогают скрипт который почту сначала проверяет на спам а потом передает доктору на предмет проверки заразы. Я решил вмешаться в скрипт и посмотреть на почту после спамфильра, если это спам то просто удалить и выйти не передавая доктору, не большой я спец в скриптах но что то слепил, а этот скрипт ловит спам, но не весь!!!!! отскровенный спам очень часто пролетает, явный спам! нагрузка на селерон от пня 4 на 1.7ггц не большая, когда я пропушенный спам сую скрипту он его определяет как спам, в чем дело не пойму. Помогите понять в чем дело? Почему он проскакивает и довольно часто? Привожу скрипт:

#!/bin/sh FILTER_SPAMC="spamc -u drweb" FILTER_DRWEB="/opt/drweb/drweb-postfix"

TMP=`mktemp` || exit 1

cat - | $FILTER_SPAMC >> $TMP && cat $MY && cat $TMP

#a="YES" #b=`/bin/cat $TMP |/bin/grep "X-Spam-Flag:"|awk '{print $2}'` #if [ $a == $b ]

#if [ 'X-Spam-Flag:' == `/bin/cat spam1 |/bin/grep 'X-Spam-Flag:'|awk '{print $1}'` ] if [ `/bin/cat $TMP |/bin/grep 'X-Spam-Flag:'|awk '{print $1}'` == 'X-Spam-Flag:' ] then rm $TMP #/usr/bin/logger -f killspam.log "Тут был беспощадно убит спам!" exit 1 fi

$FILTER_DRWEB $* < $TMP rm $TMP

anonymous

Глазаполоматьможнооттакогоформатирования.Тамвнизукнопкаесть"Preformated text"

sdio ★★★★★
()
Ответ на: комментарий от sdio

повторяю

там много ремарено пробовал по всякому, надеюсь сейчас текст будет более читаем

#!/bin/sh
FILTER_SPAMC="spamc -u drweb"
FILTER_DRWEB="/opt/drweb/drweb-postfix"

TMP=`mktemp` || exit 1

cat - | $FILTER_SPAMC >> $TMP && cat $MY && cat $TMP

#a="YES"
#b=`/bin/cat $TMP |/bin/grep "X-Spam-Flag:"|awk '{print $2}'`
#if [ $a == $b ]

#if [ 'X-Spam-Flag:' == `/bin/cat spam1 |/bin/grep 'X-Spam-Flag:'|awk '{print $1}'` ]
if [ `/bin/cat $TMP |/bin/grep 'X-Spam-Flag:'|awk '{print $1}'` == 'X-Spam-Flag:' ]
then
rm $TMP
#/usr/bin/logger -f killspam.log "Тут был беспощадно убит спам!"
exit 1
fi


$FILTER_DRWEB $* < $TMP
rm $TMP

anonymous
()
Ответ на: повторяю от anonymous

> cat - | $FILTER_SPAMC >> $TMP && cat $MY && cat $TMP
                                       ^^^ где определяется MY ???

> if [ `/bin/cat $TMP |/bin/grep 'X-Spam-Flag:'|awk '{print $1}'` == 
>  'X-Spam-Flag:' ]
> then
#   -------        Круто завернул !        -------------
if /bin/grep -q 'X-Spam-Flag:'; then

sdio ★★★★★
()
Ответ на: комментарий от sdio

я говорю, не большой спец в скриптах.

И что так не должно пропускать? в принципе же одно и то же? Спасибо попробую!

anonymous
()
Ответ на: комментарий от anonymous

А вот это давайте не будем обсуждать!

перешол и перешол, везде есть свои плюсы и минусы и у каждого могут быть свои предпочтения. Не везде еще и перешол, где то сендмыл работает.

anonymous
()
Ответ на: комментарий от sdio

поменял скрипт но все равно пропускает!

на взгляд вроде меньше, но пропускает, хотя ночь покажет.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.