2014-11-25 2 views
1

Мой Amavis, который я запускаю в Ubuntu 14.04.1 LTS, отправляет мне каждый день около 4 писем со следующим содержимым:
«pyzor: check failed: внутренняя ошибка, отслеживание питона в ответ «
Ну, так как я не видел никаких следов и не смог найти его, я искал ...Ошибка от amavisd-new-cronjob sa-sync

Первый совет был« пизон пинг ». Я запускал его как User amavis, и результат был «public.pyzor.org:24441 (200,« OK »)«

Так что это кажется прекрасным. Оно живое. Затем я тестировал, если он «работает».

Input: 
spamassassin -D pyzor <1415394952.V54I4460799M230590.h2063374.stratoserver.net\:2\,Sa 

Feedback: 
Nov 25 08:48:16.182 [13757] dbg: pyzor: network tests on, attempting Pyzor 
Nov 25 08:48:30.944 [13757] dbg: pyzor: pyzor is available: /usr/bin/pyzor 
Nov 25 08:48:30.945 [13757] dbg: pyzor: opening pipe: /usr/bin/pyzor --homedir /etc/mail/spamassassin check < /tmp/.spamassassin13757wvlpQJtmp 
Nov 25 08:48:30.992 [13757] dbg: pyzor: [13759] finished successfully 
Nov 25 08:48:30.992 [13757] dbg: pyzor: got response: public.pyzor.org:24441 (200, 'OK') 1 0 

После дальнейшего поиска в Google без каких-либо результатов, помогая я думал, "смотреть в Контент/USR/SBIN/Amavisd-нового-cronjob!"

#!/bin/bash 

# amavisd-new cronjob helper 
# 
# Run it as the amavis user 
# 
# First parameter specifies which cronjob routine to run: 
#    sa-sync:  spamassassin fast sync 
#    sa-clean:  spamassassin cleanup 

test -e /usr/bin/sa-learn || exit 0 
test -e /usr/sbin/amavisd-new || exit 0 

if [ "$(id --name -u)" != "amavis" ] 
then 
    echo "Please run this cronjob as user amavis" 
    exit 1 
fi 

set -e 
umask 022 

if ! perl -MMail::SpamAssassin -e "my \$spamtest = Mail::SpamAssassin->new(); 
\$spamtest->compile_now(); \$spamtest->{conf}->{use_bayes} ? exit 0 : exit 1" 
then 
     #bayes is disabled - just exit 
     exit 
fi 

case $1 in 
     sa-sync) 
       /usr/bin/sa-learn --sync 2>&1 >/dev/null 
       ;; 
     sa-clean) 
       /usr/bin/sa-learn --sync --force-expire 2>&1 >/dev/null 
       ;; 
     *) 
       echo "$0: unknown cron routine $1" >&2 
       exit 1 
       ;; 
esac 

exit 0 

Я был в состоянии выполнить succsessfully «са-синхронизации» и «са-чистый», как Пользователь AMaViS поэтому ошибка должна быть где-то дальше.

я заметил следующие строки и вдруг в состоянии выполнить Amavisd-новые-cronjob, как пользователь AMaViS без ошибок ...

#if ! perl -MMail::SpamAssassin -e "my \$spamtest = Mail::SpamAssassin->new(); 
#\$spamtest->compile_now(); \$spamtest->{conf}->{use_bayes} ? exit 0 : exit 1" 
#then 
#  #bayes is disabled - just exit 
#  exit 
#fi 

Я не чувствую себя хорошо оставить как есть, так как я не являюсь убедитесь, что эти строки делают или какие разрешения пользователю amavis необходимо успешно запустить.

Кто-нибудь подскажет мне, как решить эту проблему?

ответ

4

Недавно я исследовал этот вопрос, потому что получил ту же ошибку, что и почта из cron. Мой сервер работает с Debian Wheezy.

Вы можете отслеживать ошибки путем тестирования pyzor с помощью documented command line:

$ su - amavis -c "echo test | spamassassin -D pyzor 2>&1 | less" 

Конечно, вы можете заменить «эхо-тест» с реальным спам, чтобы получить реальный результат. Но BTT: В моем случае проблема заключалась в том, что amavis не имел права читать/etc/spamassassin/servers. Я решил эту проблему путем изменения группы и права доступа к файлу

$ ls -l /etc/spamassassin/servers 
-rw------- 1 debian-spamd root 23 Mär 27 10:34 /etc/spamassassin/servers 
$ chgrp amavis /etc/spamassassin/servers; chmod g+r /etc/spamassassin/servers 

Чтобы проверить, если это действительно помогло, вы можете просто повторно запустить командную строку тест (сверху). Теперь он должен возвращаться без ошибок.

Cheers, Marco

+0

Большое спасибо, это помогло мне решить эту проблему! :) – user1660311

+0

Дайте этому парню галочку. – vmassuchetto

Смежные вопросы