Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по Linux (http://forum.oszone.net/forumdisplay.php?f=9)
-   -   [решено] Скрипт, ежедневно запускающий Sarg, вылетает с ошибкой (http://forum.oszone.net/showthread.php?t=101681)

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?
выскакивает. Это переполнение буфера? Почему?!

[mzd] 29-02-2008 09:39 750411

Цитата:

- 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.

Время: 10:36.
© OSzone.net 2001-