Dimanych

Рейтинг
155
Регистрация
05.06.2007

Очереди вообще не будет, если ексим будет намертво отсекать все локальные письма, всё равно их никто не получает. Осталось найти как это сделать ) В секции routers это вроде как не получится осуществить, а вот в transfers должно получиться.

Andreyka:
Не в exim, а в cron ;)

Кроны пользовательские, их много, и что-то там править даже не этично ;)

Проблема скорее на уровне exim, во первых мне не понятно, общая очередь в 20тыс писем это что, очень больая очередь и сервер не может с ней справиться?

Я почему то думал что если адрес не существует - unroatable, то повторно письма не отправляются. Видимо exim сервер должен давать другой ответ на письмо (причёмм сам себе), чтобы не ставить такие письма в очередь. Кто-нибудь разбирается в этом?

Всем спасибо, буду искать как их в exim отправить в /dev/null)

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

Вообщем получается что письма идут локальным юзерам и не доставляются. (unroatable)

Почему они всё таки замораживаюстя и отправляются повторно? Нужно обязательно получать локальные письма в ящики?

У меня сейчас нет обработки локальных писев в эксиме, т.е. если ящик не задан в файлике одном то то секция роутеров не пускает письма.

virtual_user:
debug_print = "R: virtual_user for $local_part@$domain"
driver = accept
condition = ${perl{virtual_user}}
transport = maildir_home

Я непойму, крон результат запуска скрипта отправляет локальному юзеру чтоли?

Обычный скрипт мониторинга, тело подобного письма:

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

grisa94@server.ru
Unrouteable address

------ This is a copy of the message, including all the headers. ------

Return-path: <grisa94@server.ru>
Received: from grisa94 by server.ru with local (Exim 4.69)
(envelope-from <grisa94@server.ru>)
id 1QLp1J-00016F-29
for grisa94@server.ru; Mon, 16 May 2011 08:03:01 +0400
From: root@server.ru (Cron Daemon)
To: grisa94@server.ru
Subject: Cron <grisa94@server.ru> /usr/local/bin/php -n /home/grisa94/monitoring/lgsl_files/lgsl_cron.php
Content-Type: text/plain; charset=UTF-8
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/grisa94/>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=grisa94>
Message-Id: <E1QLp1J-00016F-29@server.ru>
Date: Mon, 16 May 2011 08:03:01 +0400

<pre>STARTING ( TIME LIMIT: 3600 )

0.01 :halflife :213.231.5.218 :27015 :27015 :0
0.51 :halflife :188.127.246.116 :27051 :27051 :0

FINISHED</pre>

А главное почему они не отсекаются если Unrouteable address

И ещё, уменьшилось

exim -bpc

16358

Да. Крон думаю совсем не причём, крон походу связан с отправкой письма от sendmail.

exim -bpc

19565

все замороженные вида

55h 1.5K 1QL8zD-00071w-Q0 <> *** frozen ***

user@server.ru

150P Received: from Debian-exim by server.ru with local (Exim 4.69)
id 1QL8zD-00071w-Q0
for user@server.ru; Sat, 14 May 2011 11:10:03 +0400
044 X-Failed-Recipients: user@server.ru
029 Auto-Submitted: auto-replied
058F From: Mail Delivery System <Mailer-Daemon@server.ru>
027T To: user@server.ru
059 Subject: Mail delivery failed: returning message to sender
047I Message-Id: <E1QL8zD-00071w-Q0@server.ru>
038 Date: Sat, 14 May 2011 11:10:03 +0400

ещё такие есть

188P Received: from grisa94 by server.ru with local (Exim 4.69)
(envelope-from <grisa94@server.ru>)
id 1QLqgr-0003DP-CI
for grisa94@server.ru; Mon, 16 May 2011 10:06:06 +0400
025* From: root (Cron Daemon)
040F From: root@server.ru (Cron Daemon)
012* To: grisa94
027T To: grisa94@server.ru
099 Subject: Cron <grisa94@s2> /usr/local/bin/php -n /home/grisa94/monitoring/lgsl_files/lgsl_cron.php
040 Content-Type: text/plain; charset=UTF-8
028 X-Cron-Env: <SHELL=/bin/sh>
034 X-Cron-Env: <HOME=/home/grisa94/>
033 X-Cron-Env: <PATH=/usr/bin:/bin>
030 X-Cron-Env: <LOGNAME=grisa94>
047I Message-Id: <E1QLqgr-0003DP-CI@server.ru>
038 Date: Mon, 16 May 2011 09:50:01 +0400

вообщем письма не дойду никак на локальные ящики вида user@server.ru

это проблема конфига exim?

Спустя минут 10 процессы отвалились сами, включил опять exim, и наблюдаю как медленно, увеличивается рост подобных процессов.

Крон конечно используют некоторые пользователи, но это не юзерский крон, вообще даже не пойму почему имя программы большими буквами: /USR/SBIN/CRON

strace одного такого процесса говорит wait4(-1,

lsof

cron 32627 root cwd DIR 9,2 4096 37978484 /var/spool/cron
cron 32627 root rtd DIR 9,2 4096 2 /
cron 32627 root txt REG 9,2 38240 24811904 /usr/sbin/cron
cron 32627 root mem REG 9,2 15064 18397367 /lib/security/pam_limits.so
cron 32627 root mem REG 9,2 12144 18397389 /lib/security/pam_env.so
cron 32627 root mem REG 9,2 39112 18381738 /lib/libcrypt-2.7.so
cron 32627 root mem REG 9,2 52952 18397392 /lib/security/pam_unix.so
cron 32627 root mem REG 9,2 47520 18381760 /lib/libnss_files-2.7.so
cron 32627 root mem REG 9,2 43472 18381765 /lib/libnss_nis-2.7.so
cron 32627 root mem REG 9,2 88968 18381749 /lib/libnsl-2.7.so
cron 32627 root mem REG 9,2 31536 18381754 /lib/libnss_compat-2.7.so
cron 32627 root mem REG 9,2 14616 18381740 /lib/libdl-2.7.so
cron 32627 root mem REG 9,2 1375536 18380697 /lib/libc-2.7.so
cron 32627 root mem REG 9,2 109464 18381785 /lib/libselinux.so.1
cron 32627 root mem REG 9,2 46256 18381772 /lib/libpam.so.0.81.12
cron 32627 root mem REG 9,2 119288 18380668 /lib/ld-2.7.so
cron 32627 root mem REG 9,2 25700 24804343 /usr/lib/gconv/gconv-modules.cache
cron 32627 root mem REG 9,2 1529136 24803795 /usr/lib/locale/locale-archive
cron 32627 root 0r CHR 1,3 602 /dev/null
cron 32627 root 1w CHR 1,3 602 /dev/null
cron 32627 root 2w CHR 1,3 602 /dev/null
cron 32627 root 5r FIFO 0,6 2545752 pipe
cron 32627 root 7u unix 0xffff8102111d33c0 2545754 socket

Изучая подобный этому процесс

104 32639 0.0 0.0 81308 3884 ? D 17:33 0:00 /usr/sbin/sendmail -i -FCronDaemon -oem max1889

strace - сильные тормаза на строке rename

Process 14648 attached - interrupt to quit
fchown(4, 104, 106) = 0
fchmod(4, 0640) = 0
fcntl(4, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE)
fstat(4, {st_mode=S_IFREG|0640, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdb45357000
lseek(4, 0, SEEK_CUR) = 0
write(4, "1QLyAP-0003oG-Rs-H\nmax1889 1010 1"..., 324) = 324
fstat(4, {st_mode=S_IFREG|0640, st_size=324, ...}) = 0
write(4, "188P Received: from max1889 by s2"..., 705) = 705
fsync(4) = 0
fstat(4, {st_mode=S_IFREG|0640, st_size=1029, ...}) = 0
close(4) = 0
munmap(0x7fdb45357000, 4096) = 0
rename("/var/spool/exim4/input//hdr.14648", "/var/spool/exim4/input//1QLyAP-0003oG-Rs-H") = 0
open("/var/spool/exim4/input//.", O_RDONLY) = 4
fsync(4) = 0
close(4) = 0
fstat(3, {st_mode=S_IFREG|0640, st_size=44, ...}) = 0
open("/var/spool/exim4/msglog//1QLyAP-0003oG-Rs", O_WRONLY|O_CREAT|O_APPEND, 0640) = 4
fcntl(4, F_GETFL) = 0x8401 (flags O_WRONLY|O_APPEND|O_LARGEFILE)
fstat(4, {st_mode=S_IFREG|0640, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdb45357000
lseek(4, 0, SEEK_CUR) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2194, ...}) = 0
write(4, "2011-05-16 17:50:31 Received from"..., 81) = 81
close(4) = 0
munmap(0x7fdb45357000, 4096) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2194, ...}) = 0
open("/var/log/exim4/mainlog", O_WRONLY|O_APPEND) = 4
fcntl(4, F_GETFD) = 0
fcntl(4, F_SETFD, FD_CLOEXEC) = 0
fstat(4, {st_mode=S_IFREG|0640, st_size=99430570, ...}) = 0
write(4, "2011-05-16 17:50:31 1QLyAP-0003oG"..., 87) = 87
close(3) = 0
munmap(0x7fdb45358000, 4096) = 0
rt_sigaction(SIGTERM, {SIG_DFL}, {SIG_IGN}, 8) = 0
rt_sigaction(SIGINT, {SIG_DFL}, {SIG_IGN}, 8) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fdb45245790) = 16328
exit_group(0) = ?
Process 14648 detached

Видимо тормаза от того что в папке много файлов:

dir /var/spool/exim4/input/ -l|wc -l

41062

Отличия между 5 и 6 минимальные, если ставится пакетам, то и падавно, всё тоже самое.

Не смешите, нужен вебсервер с PHP и правими рута. А в конфигах дело не может быть, так как с этими же конфигами при ручной сборке всё работает, да и вообще убирал php.ini, перезапускал, всё также.

Буду ставить fastcgi видимо под такие задачи, а очень жаль (

Raistlin, вы просто сейчас пытаетесь мне сказать что не следует использовать такое дырявое ПО как apache/php под рутовскими правами, ну я с этим согласен, но если я это делаю, то значит есть на то причины ;)

Если команда собравшая пакет запретила root, то я не смог бы попасть в папку /root 0700 (root) и прочитать фаил .bash_history 0600 (root), а я это делаю. Также можно перейти на любого пользователя, posix_setuid($uid) и работать от него. НО именно файловые функции перед действием проверяются на UID. Если не верите, просто попробуйте.

myhand, ваш юмор я не понял, я имел ввиду запуск fastcgi :)

Всего: 830