Нужен совет Perl (проверка ротации логов)

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Ответить
Аватара пользователя
Burger
Сообщения: 122
Статус: LOL
ОС: RHEL\CentOS

Нужен совет Perl

Сообщение Burger »

Привет.
Есть веб сервер с несколькими сайтами. С помощью logrotate настроена ротация логов, но иногда ротация отваливается.
Конфиг из logrotate:

Код: Выделить всё

/var/log/httpd/logs/*log {
daily
missingok
rotate 90
compress
delaycompress
dateext
dateformat .%Y-%m-%d
copytruncate
olddir completed/
}

т.е. логи типа:
[burger@web01 ~]$ ls -l /var/log/httpd/logs/*log
-rw-r--r-- 1 root root 0 May 21 00:01 /var/log/httpd/logs/access.log
-rw-r--r-- 1 root root 483652 May 21 12:54 /var/log/httpd/logs/othersite.ru_80-access.log
-rw-r--r-- 1 root root 305 May 21 11:51 /var/log/httpd/logs/othersite.ru_80-error.log
-rw-r--r-- 1 root root 0 May 21 00:01 /var/log/httpd/logs/error.log
-rw-r--r-- 1 root root 46222 May 21 12:45 /var/log/httpd/logs/www.site.com_8880-access.log
-rw-r--r-- 1 root root 0 May 21 00:01 /var/log/httpd/logs/www.site.com_8880-error.log

соответственно после ротации и архивации каждый лог должен быть перемещен в:
[burger@web01 ~]$ ls -l /var/log/httpd/logs/completed/|grep 2014-05-18
...
-rw-r--r-- 1 root root 20 May 18 00:01 access.log.2014-05-18.gz
-rw-r--r-- 1 root root 107244 May 18 00:01 othersite.ru_80-access.log.2014-05-18.gz
-rw-r--r-- 1 root root 20 May 18 00:01 othersite.ru_80-error.log.2014-05-18.gz
-rw-r--r-- 1 root root 20 May 18 00:01 error.log.2014-05-18.gz
-rw-r--r-- 1 root root 9991 May 18 00:01 www.site.com_8880-access.log.2014-05-18.gz
-rw-r--r-- 1 root root 20 May 18 00:01 www.site.com_8880-error.log.2014-05-18.gz
...

Задача: запилить скрипт на перле,который будет:
раз стуки запускаться по крону и проверять наличие ротированых лог файлов за прошедшие сутки.

И если какой-то лог не был ротирован,то слать оповещение локальному руту с именем отсутствующего лога в теме письма.

К сожалению, с перлом особо не работал, так что даже не знаю с какой стороны к вопросу подойти. Выручайте!
:unsure:
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Нужен совет Perl

Сообщение Bizdelnick »

Burger писал(а):
21.05.2014 16:45
Задача: запилить скрипт на перле

Burger писал(а):
21.05.2014 16:45
К сожалению, с перлом особо не работал

Так зачем тогда писать на перле?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
nerve
Сообщения: 280
ОС: OpenBSD

Re: Нужен совет Perl

Сообщение nerve »

Код: Выделить всё

#!/bin/bash
DATE=`date --date="last day" +"%Y-%m-%d"`
DIR=/var/log/httpd/logs/completed
ls -1 $DIR | grep $DATE || echo "There is no archived log for $DATE"  | mail root

ща конечно подтянутся профи и напишут как надо на перле))
Спасибо сказали:
IMB
Сообщения: 2561
ОС: Debian

Re: Нужен совет Perl

Сообщение IMB »

Может лучше попыться выяснить причину "отваливания"?
И возможно Вам помогут pre/postrotate скрипты.
Спасибо сказали:
Аватара пользователя
Burger
Сообщения: 122
Статус: LOL
ОС: RHEL\CentOS

Re: Нужен совет Perl

Сообщение Burger »

Да вот в том то и дело, что на Bash я сам запилить могу. Но нужно именно на перле, потому и проявляю интерес.
Спасибо сказали:
allez
Сообщения: 2223
Статус: Не очень злой админ :-)
ОС: SuSE, CentOS, FreeBSD, Windows

Re: Нужен совет Perl

Сообщение allez »

Burger писал(а):
21.05.2014 22:45
Но нужно именно на перле
Любопытно, кому и зачем?
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: Нужен совет Perl

Сообщение drBatty »

Burger писал(а):
21.05.2014 22:45
Да вот в том то и дело, что на Bash я сам запилить могу. Но нужно именно на перле, потому и проявляю интерес.

интересно, почему не на brainfuck'е?
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Ответить