Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » UNIX » Logwatch не отправляет отчеты в CentOS

Модерирует : ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

artlayers

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Столкнулся с проблемой. Поставил на два сервера logwatch, один на Debian, другой на CentOS. Logwatch на Debian великолепно отправляет каждый день отчеты на почту, а вот с CentOS такая проблема:

Цитата:
Can't exec "sendmail": No such file or directory at /usr/share/logwatch/scripts/logwatch.pl line 1018, <TESTFILE> line 3.
Can't execute sendmail -t: No such file or directory

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

Всего записей: 12 | Зарегистр. 17-08-2010 | Отправлено: 12:38 11-08-2011 | Исправлено: artlayers, 12:57 11-08-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
artlayers
Сначала небольшая нотация. :-)
Во-первых, если проблема похожа на дистроспецифичную, то стоило обратиться в тему по дистрибутиву, ну да ладно.
А во-вторых, logwatch.pl может быть разным (см. прил. 1), да и вообще на домашней машине он быть не обязан, поэтому окрестность 1018 строки стоило привести.
 

Прил. 1
Код:
1011 ######################################################################
1012 #sub PrintLogFileData
1013 #
1014 ######################################################################
1015 # for debugging...
1016 sub PrintLogFileData () {
1017   my ($ThisKey1,$ThisKey2,$i);
1018   foreach $ThisKey1 (keys %LogFileData) {
1019      print "\nLogfile Name: " . $ThisKey1 . "\n";
1020      foreach $ThisKey2 (keys %{$LogFileData{$ThisKey1}}) {
1021         next unless ($ThisKey2 =~ /^\d+-/);
1022         print "   $ThisKey2 = $LogFileData{$ThisKey1}{$ThisKey2}\n";
1023      }
1024      for ($i=0;$i<=$#{$LogFileData{$ThisKey1}{'logfiles'}};$i++) {
1025         print "   Logfile = " . $LogFileData{$ThisKey1}{'logfiles'}[$i] . "\n";
1026      }
1027      for ($i=0;$i<=$#{$LogFileData{$ThisKey1}{'archives'}};$i++) {
1028         print "   Archive = " . $LogFileData{$ThisKey1}{'archives'}[$i] . "\n";
1029      }
1030      if ($LogFileData{$ThisKey1}{'nohostfilter'}) {
1031         print "   NoHostFilter = " . $LogFileData{$ThisKey1}{'nohostfilter'} . "\n";
1032      }
1033   }
1034 }

Это Дебиан Визи; про sendmail здесь ни слова, так что у вас там что-то определенно другое.

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 13:19 11-08-2011 | Исправлено: ASE_DAG, 13:22 11-08-2011
artlayers

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Код скрипт в районе 1018  

Код:
if ($Config{'print'} eq 1) {
      *OUTFILE = *STDOUT;
   } elsif ($Config{'save'} ne "") {
      open(OUTFILE,">" . $Config{'save'}) or die "Can't open output file: $Config{'save'} $!\n";
   } else {
      if (($Config{'multiemail'} eq 1) || ($emailopen eq "")) {
         #Use mailer = in logwatch.conf to set options. Default should be "sendmail -t"
         #In theory this should be able to handle many different mailers. I might need to add
1017 #some filter code on $Config{'mailer'} to make it more robust. -mgt
1018 open(OUTFILE,"|$Config{'mailer'}") or die "Can't execute $Config{'mailer'}: $!\n";
1019 print OUTFILE "To: $Config{'mailto'}\n";
         print OUTFILE "From: $Config{'mailfrom'}\n";
         print OUTFILE "Subject: Logwatch for $Config{'hostname'} (${OStitle})\n";
         #Add MIME
         $out_mime .= "MIME-Version: 1.0\n";  
         if ( $Config{encode} == 1 ) {
            $out_mime .= "Content-transfer-encoding: base64\n";
         } else {
            $out_mime .= "Content-Transfer-Encoding: 7bit\n";
         }
         if ( $outtype_html ) {
            $out_mime .= "Content-Type: text/html; charset=\"iso-8859-1\"\n\n";
         } else {
            $out_mime .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n\n";
         }

 
Как видно, берет из конфига. Смотрим в конфиг. Здесь такое

Код:
#
# By default we assume that all Unix systems have sendmail or a sendmail-like system.
# The mailer code Prints a header with To: From: and Subject:.
# At this point you can change the mailer to any thing else that can handle that output
# stream. TODO test variables in the mailer string to see if the To/From/Subject can be set
# From here with out breaking anything. This would allow mail/mailx/nail etc..... -mgt  
mailer = "sendmail -t"

Всего записей: 12 | Зарегистр. 17-08-2010 | Отправлено: 13:28 11-08-2011 | Исправлено: artlayers, 13:29 11-08-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
artlayers
> mailer = "sendmail -t"
> а по крону никак не хочет.  
Ага. Пропишите абсолютный путь: /usr/bin/sendmail -t или где он у вас там ($ which sendmail).

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 13:46 11-08-2011 | Исправлено: ASE_DAG, 13:46 11-08-2011
artlayers

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо все работает. Я делал так, но как оказалось не в том конфиге.

Всего записей: 12 | Зарегистр. 17-08-2010 | Отправлено: 08:59 12-08-2011
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Операционные системы » UNIX » Logwatch не отправляет отчеты в CentOS


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru