Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Eugeny Krasilnikov                   2:5020/400     24 Sep 2002  10:21:02
 To : Evgeny Lisetcky
 Subject : Re: Re traffic по пользователям sendmail
 -------------------------------------------------------------------------------- 
 
 Evgeny Lisetcky <Evgeny.Lisetcky@f30.n5090.z2.fidonet.org> wrote:
 
 DD>> Hадод, а чем можно посчитать почтовый тpаффик по пользователям
 DD>> глядя на maillog генеpиpуемый sendmail?
 EL>   perl'ом :)
 
 Только для начала завизуализировать этот трафик не помешает.
 Опять же потом легче самому разбираться, кто куда что посылал.
 Hиже патч для сендмайла 8.12.5, для других версий смещения
 наверно не те будут, который пишет статистику в файл а-ля mailacct.
 
 *** sendmail/deliver.c.orig   Sat Mar 23 22:30:40 2002
 - --- sendmail/deliver.c  Mon Apr 22 16:51:10 2002
 ***************
 *** 3434,3439 ****
 - --- 3434,3495 ----
                 "%s... Deliver-By trace: relayed\n",
                 to->q_paddr);
       }
 + /******** mailacct *************/
 + /* Запись статистики в mailacct
 + ** Для включения записи статистики в mailacct необходимо в вашем
 + ** файле конфигурации добавить строки, например
 + LOCAL_CONFIG
 + D{MailAcctFile}/var/log/mailacct
 + **
 + */
 + 
 +     if (e->e_msgsize) {
 +        char *mailacctfile;
 +        /* Проверим, сконфигурирована ли в sendmail.cf
 +      поддержка mailacct */
 +        mailacctfile = macvalue(macid("{MailAcctFile}"), e);
 +        if (mailacctfile != NULL) {
 +     FILE *mailacct;
 +     char *f_host, *f_addr, *t_host, *t_addr, *p;
 +     char clock[16];
 +     int t_len, t_hlen, f_hlen;
 + 
 +     f_host=macvalue('_', e);
 +     if (!f_host || !*f_host) f_host=macvalue('s', e);
 +     if (!f_host || !*f_host) f_host="localhost";
 +     if (p=strchr(f_host, ' ')) f_hlen=p-f_host;
 +     else f_hlen=strlen(f_host);
 + 
 +     f_addr=macvalue('g', e);
 +     if (!f_addr || !*f_addr) f_addr=e->e_from.q_user;
 +     if (!f_addr || !*f_addr) f_addr="UNKNOWN";
 + 
 +     t_host = CurHostName;
 +     if (!t_host || !*t_host) t_host=host;
 +     if (!t_host || !*t_host) t_host="localhost";
 +     t_hlen=strlen(t_host)-1;
 +     if (t_host[t_hlen] != '.') t_hlen++;
 + 
 +     t_addr=to->q_paddr;
 +     if (*t_addr == '<') t_addr++;
 +     if (*t_addr == '\\') t_addr++;
 +     t_len=strlen(t_addr)-1;
 +     if (t_addr[t_len] != '>') t_len++;
 + 
 +     strftime(clock,sizeof(clock),"%X %y%m%d",
 +      localtime(&(to->q_statdate)));
 + 
 +     if ( mailacct=fopen(mailacctfile,"a")) {
 +       fprintf(mailacct,"%.*s!%s\t%.*s!%.*s\t%d\t%s\n",
 +      f_hlen, f_host, f_addr,
 +      t_hlen, t_host, t_len, t_addr, e->e_msgsize, clock);
 +       fclose(mailacct);
 +     }
 +        }
 +     }
 + 
 + /******** mailacct *************/
 + 
    }
   
    if (bitnset(M_LMTP, m->m_flags))
 -- 
 Eugeny Krasilnikov
 --- ifmail v.2.15dev5
  * Origin: JV Izhcom Ltd. (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Re traffic по пользователям sendmail   Eugeny Krasilnikov   24 Sep 2002 10:21:02 
Архивное /ru.unix.bsd/90792e4eb5d1.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional