 |
|
andrystepa |
28-02-2008 16:29 749956 |
Скрипт, ежедневно запускающий Sarg, вылетает с ошибкой
Для контроля за выходом пользователей в инет установил 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 749983 |
Цитата:
Цитата andrystepa
Откуда взялась эта строка, и что она должна делать непонятно. »
|
Откуда взялась? из вашего скрипта :)
Что делает - меняет права доступа.
chown -R apache /var/www-naat/html/genfiles/modules/squid-reports/daily
Чтоб не ругалась, можно уменьшить путь (все равно ведь рекурсивно выполняется).
Цитата:
Цитата andrystepa
Но самое главное, почему *** buffer overflow detected ***: /usr/sbin/sarg terminated? Что за глюк? Что тут можно сделать? Помогите! »
|
Какая версия сарджа? Обновитесь до последней стабильной, с некоторыми версиями были подобные глюки.
|
andrystepa |
28-02-2008 17:46 750019 |
Я имею ввиду, почему в скрипте указан такой путь? Его не существует.
Версия Sarg - 1.4.1-i586-mdk. Ставил из репозитария утилитой установки и удаления программ. Обновлений на Sarg в репозитариях нет.
|
must die |
28-02-2008 21:20 750156 |
Цитата:
Цитата andrystepa
Я имею ввиду, почему в скрипте указан такой путь? Его не существует. »
|
Вопрос к автору скрипта или к нам?
|
andrystepa |
29-02-2008 09:15 750404 |
Вопрос что и как исправить чтобы работало. Я пробовал закомментировать эту строку, все равно
Код:
*** buffer overflow detected ***: /usr/sbin/sarg terminated?
выскакивает. Это переполнение буфера? Почему?!
|
Цитата:
- 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 750416 |
Цитата:
Цитата andrystepa
выскакивает. Это переполнение буфера? Почему?! »
|
Вам же ответили, надо обновится. Строка с chown ..... не имеет никакого отношения к переполнению.
Готовый пакет можно взять здесь
|
andrystepa |
29-02-2008 12:04 750493 |
Скачал новый Sarg в исходниках - ни в одном репозитарии Мандривы небыло новее, чем тот что стоял у меня. Установил - теперь не появляется сообщение о переполнении. Однако появилась другая проблема - Squid почему-то не обновляет /var/log/squid/access.log файл, вернее не пишет туда ничего. Он как был размером 0, так и остается уже неделю. При этом в логи cache.log, squid.out запись происходит. Соответственно, скрипт Sarg пишет, что записи не найдены. Почему так происходит?
|
must die |
29-02-2008 12:31 750512 |
andrystepa,
попробуйте squid -k rotate
|
andrystepa |
29-02-2008 13:31 750557 |
must die, Попробовал. Прошло более получаса. За это время даже я один открывал в браузере несколько страниц. Ничего не изменилось. access.log пуст....
|
andrystepa |
03-03-2008 09:54 752207 |
Прошу прощения, ларчик просто открывался. В конфиге squid.conf была закомментирована строка с директивой access_log, которая указывает куда, что логить, и вообще логить ли. А по умолчанию, она оказывается стоит в none. Поэтому в access.log ничего и не писалось. Туплю, надо было сразу смотреть описания директив конфига...
|
Время: 10:36.
© OSzone.net 2001-