Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Технология работы pflogsumm довольно проста. Пользователь передает на стандартный ввод скрипта файлы протокола почтовой системы. А результаты получает из стандартного вывода. Мне кажется, что статистика должна собираться за прошедшую неделю, предыдущий и текущий день. Для выполнения этих задач мы напишем три вспомогательных скрипта. После их выполнения сформированные файлы должны записываться в директорию /usr/local/apache/htdocs/traffic/. С помощью веб-сервера apache, работающего на этой же машине, файлы из этой директории будут доступны начальству для просмотра с помощью любого веб-браузера. В дополнение к этому хотелось, чтобы недельная и ежедневная статистика приходила по почте администратору.
Для систем FreeBSD характерно хранение протокола почтовой системы длиной в одну неделю. В некоторых диалектах Linux принято хранить протоколы длиной в один месяц. Как и во многих других UNIX-подобных системах, с помощью демона cron каждую ночь запускается задача ротации файлов протоколов. В результате работы этой задачи файл /var/log/maillog упаковывается с помощью программы gunzip и записывается вместо файла /var/log/maillog.0.gz. В других системах вместо gunzip используется bzip, но основной принцип это не меняет. Старое содержимое файла /var/log/maillog.0.gz записывается в файл /var/log/maillog.1.gz. Таким образом, все файлы по цепочке смещаются вниз на один день. И только содержимое файла /var/log/maillog.6.gz никуда не копируется, а просто перезаписывается файлом /var/log/maillog.5.gz. Обдумав все вышесказанное, приходим к выводу, что недельный и ежедневный скрипты подсчета статистики должны запускаться после того, как задача ротации логов успешно завершится. Во избежание всяких казусов уточните время запуска и завершения задачи ротации протоколов для вашей системы.
Ниже приводится содержимое файла /usr/local/pflogsumm/weekly.sh, создающего недельную статистику. Этот скрипт запускается каждый понедельник в 1 час 00 минут.
#!/bin/sh
zcat /var/log/maillog.0.gz > /usr/local/pflogsumm/weekly.maillog
zcat /var/log/maillog.1.gz >> /usr/local/pflogsumm/weekly.maillog
zcat /var/log/maillog.2.gz >> /usr/local/pflogsumm/weekly.maillog
zcat /var/log/maillog.3.gz >> /usr/local/pflogsumm/weekly.maillog
zcat /var/log/maillog.4.gz >> /usr/local/pflogsumm/weekly.maillog
zcat /var/log/maillog.5.gz >> /usr/local/pflogsumm/weekly.maillog
zcat /var/log/maillog.6.gz >> /usr/local/pflogsumm/weekly.maillog
# Собираем полный недельный протокол в файл weekly.maillog такой подход облегчает обработку файла. Но в то же время
# стоит убедиться, что в системе хватит места для этого файла.
echo "/usr/local/apache/htdocs/traffic/" > /usr/local/pflogsumm/weekly.name
date -v-7d "+%d%b%Y-" >> /usr/local/pflogsumm/weekly.name
date -v-1d "+%d%b%Y" >> /usr/local/pflogsumm/weekly.name
# Записываем в файл weekly.name полный путь к результирующему файлу. Должны получаться имена файлов вроде 17Apr2003-24Apr2003