PDA

Показать полную графическую версию : [решено] Скрипт, ежедневно запускающий Sarg, вылетает с ошибкой


andrystepa
28-02-2008, 16:29
Для контроля за выходом пользователей в инет установил Sarg. Все установилось. Но вот ежедневный скрипт в /etc/cron.aily/0sarg выдает ошибку. Привожу вывод консоли:


/etc/cron.daily/0sarg
chown: невозможно получить доступ к `/var/www-naat/html/genfiles/modules/squid-reports/daily': Нет такого файла или каталога
*** buffer overflow detected ***: /usr/sbin/sarg terminated
======= Backtrace: =========
/lib/i686/libc.so.6(__chk_fail+0x41)[0xb7ea4f91]
/lib/i686/libc.so.6(__strcpy_chk+0x43)[0xb7ea4493]
/usr/sbin/sarg[0x8060a80]
======= Memory map: ========
08048000-08074000 r-xp 00000000 08:15 617979 /usr/sbin/sarg
08074000-08075000 rwxp 0002c000 08:15 617979 /usr/sbin/sarg
08075000-08107000 rwxp 08075000 00:00 0 [heap]
b7dc6000-b7dc7000 rwxp b7dc6000 00:00 0
b7dc7000-b7ef0000 r-xp 00000000 08:12 2159622 /lib/i686/libc-2.4.so
b7ef0000-b7ef1000 r-xp 00129000 08:12 2159622 /lib/i686/libc-2.4.so
b7ef1000-b7ef3000 rwxp 0012a000 08:12 2159622 /lib/i686/libc-2.4.so
b7ef3000-b7ef6000 rwxp b7ef3000 00:00 0
b7f00000-b7f0a000 r-xp 00000000 08:12 2159673 /lib/libgcc_s-4.1.2.so.1
b7f0a000-b7f0b000 rwxp 0000a000 08:12 2159673 /lib/libgcc_s-4.1.2.so.1
b7f0b000-b7f0d000 rwxp b7f0b000 00:00 0
b7f0d000-b7f25000 r-xp 00000000 08:12 2159632 /lib/ld-2.4.so
b7f25000-b7f26000 r-xp 00017000 08:12 2159632 /lib/ld-2.4.so
b7f26000-b7f27000 rwxp 00018000 08:12 2159632 /lib/ld-2.4.so
bfb5c000-bfb9e000 rw-p bfb5c000 00:00 0 [stack]
bfffe000-bffff000 r-xp bfffe000 00:00 0
/etc/cron.daily/0sarg: line 14: 15359 Aborted /usr/sbin/sarg -f /etc/sarg/sarg.conf -l /var/log/squid/access.log -o /var/www/html/squid/daily -z -d "


Сам скрипт выглядит так:


#!/bin/bash

#Get current date
TODAY=$(date +%d/%m/%Y)
echo $TODAY ¨Start work¨ \n > /var/log/sarg_work
#Get one day ago today
YESTERDAY=$(date --date "1 day ago" +%d/%m/%Y)

mkdir -p /var/www/html/squid/daily
chown -R apache /var/www-naat/html/genfiles/modules/squid-reports/daily
chown -R apache.apache /var/www/html/squid/daily

export LC_ALL=C
/usr/sbin/sarg -f /etc/sarg/sarg.conf -l /var/log/squid/access.log -o /var/www/html/squid/daily -z -d $YESTERDAY-$TODAY
echo $TODAY ¨End work¨ \n > /var/log/sarg_work

exit 0


То что система ругается на строку

chown -R apache /var/www-naat/html/genfiles/modules/squid-reports/daily

понятно - таких директорий и файлов действительно нет. Откуда взялась эта строка, и что она должна делать непонятно.
Но самое главное, почему *** buffer overflow detected ***: /usr/sbin/sarg terminated? Что за глюк? Что тут можно сделать? Помогите!

must die
28-02-2008, 16:54
Откуда взялась эта строка, и что она должна делать непонятно. »

Откуда взялась? из вашего скрипта :)
Что делает - меняет права доступа.
chown -R apache /var/www-naat/html/genfiles/modules/squid-reports/daily
Чтоб не ругалась, можно уменьшить путь (все равно ведь рекурсивно выполняется).

Но самое главное, почему *** buffer overflow detected ***: /usr/sbin/sarg terminated? Что за глюк? Что тут можно сделать? Помогите! »


Какая версия сарджа? Обновитесь до последней стабильной, с некоторыми версиями были подобные глюки.

andrystepa
28-02-2008, 17:46
Я имею ввиду, почему в скрипте указан такой путь? Его не существует.
Версия Sarg - 1.4.1-i586-mdk. Ставил из репозитария утилитой установки и удаления программ. Обновлений на Sarg в репозитариях нет.

must die
28-02-2008, 21:20
Я имею ввиду, почему в скрипте указан такой путь? Его не существует. »

Вопрос к автору скрипта или к нам?

andrystepa
29-02-2008, 09:15
Вопрос что и как исправить чтобы работало. Я пробовал закомментировать эту строку, все равно
*** buffer overflow detected ***: /usr/sbin/sarg terminated?
выскакивает. Это переполнение буфера? Почему?!

[mzd]
29-02-2008, 09:39
- update to version 2.2.2
* malloc test implemented to avoid high-memory consuming.
Thanks to Rodrigo Rubira Branco <rodrigo@kernelhacking.com>
* Czech UTF8 language added by Josef Karliak <karliak@ajetaci.cz>
* fixed: parsed mismatch in realtime_access_log_lines and
access_log_lines tags.
Thanks to Kuznetsov Andrey <pm_kan@mail.ru>
* changed: realtime report sort changed by date/time
Thanks to Leonardo Buonsanti <leonardo.buonsanti@gmail.com>
* GD minor fixes added.
* bug fixed. *** buffer overflow detected ***: sarg terminated
in Fedora Core 5 when using -D FORTIFY_SOURCE in gcc or in kernel
По-любому, придется обновлять. Какая версия Mandriva у вас установлена?

must die
29-02-2008, 09:47
выскакивает. Это переполнение буфера? Почему?! »

Вам же ответили, надо обновится. Строка с chown ..... не имеет никакого отношения к переполнению.
Готовый пакет можно взять здесь (http://rpmfind.net/linux/rpm2html/search.php?query=sarg&submit=Search+...)

andrystepa
29-02-2008, 12:04
Скачал новый Sarg в исходниках - ни в одном репозитарии Мандривы небыло новее, чем тот что стоял у меня. Установил - теперь не появляется сообщение о переполнении. Однако появилась другая проблема - Squid почему-то не обновляет /var/log/squid/access.log файл, вернее не пишет туда ничего. Он как был размером 0, так и остается уже неделю. При этом в логи cache.log, squid.out запись происходит. Соответственно, скрипт Sarg пишет, что записи не найдены. Почему так происходит?

must die
29-02-2008, 12:31
andrystepa,

попробуйте squid -k rotate

andrystepa
29-02-2008, 13:31
must die, Попробовал. Прошло более получаса. За это время даже я один открывал в браузере несколько страниц. Ничего не изменилось. access.log пуст....

andrystepa
03-03-2008, 09:54
Прошу прощения, ларчик просто открывался. В конфиге squid.conf была закомментирована строка с директивой access_log, которая указывает куда, что логить, и вообще логить ли. А по умолчанию, она оказывается стоит в none. Поэтому в access.log ничего и не писалось. Туплю, надо было сразу смотреть описания директив конфига...




© OSzone.net 2001-2012