The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"MRTG показывает ошибки при получении данных из скрипта"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"MRTG показывает ошибки при получении данных из скрипта"
Сообщение от VZ emailИскать по авторуВ закладки on 17-Ноя-02, 18:28  (MSK)
Здравствуйте!
Поставил из портов mrtg-2.9.22 - FreeBSD 4.6
Получилось есть /usr/local/bin/mrtg и /usr/local/etc/mrtg/mrtg.cfg.sample
Сделал /usr/local/etc/mrtg/mrtg.cfg следующий:
WorkDir: /usr/local/apache/htdocs/stats
Target[df]: '/usr/diskuse'            
PageTop[df]: <H1>df Statistics:</H1>
Options[df]: growright, absolute, gauge      
MaxBytes[df]: 14944862                      
Title[df]: df usage

Скрипт /usr/diskuse
#!/bin/sh
df|tail -2|awk '{print $4}'
echo 0
echo 0
echo

При запуске mrtg выдаёт:
ERROR: Target[df][_IN_] ''/usr/diskuse'' evaluated to '/usr/diskuse' instead of a number
ERROR: Target[df][_OUT_] ''/usr/diskuse'' evaluated to '/usr/diskuse' instead of a number
WARNING: Skipping Update of df, inlast is not defined
WARNING: Skipping Update of df, outlast is not defined

В чём дело?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: MRTG показывает ошибки при получении данных из скрипта"
Сообщение от LS emailИскать по авторуВ закладки on 18-Ноя-02, 06:49  (MSK)
>Здравствуйте!
>Поставил из портов mrtg-2.9.22 - FreeBSD 4.6
>Получилось есть /usr/local/bin/mrtg и /usr/local/etc/mrtg/mrtg.cfg.sample
>Сделал /usr/local/etc/mrtg/mrtg.cfg следующий:
>WorkDir: /usr/local/apache/htdocs/stats
>Target[df]: '/usr/diskuse'
>PageTop[df]: <H1>df Statistics:</h1>
>Options[df]: growright, absolute, gauge
>MaxBytes[df]: 14944862
>Title[df]: df usage
>
>Скрипт /usr/diskuse
>#!/bin/sh
>df|tail -2|awk '{print $4}'
>echo 0
>echo 0
>echo
>
>При запуске mrtg выдаёт:
>ERROR: Target[df][_IN_] ''/usr/diskuse'' evaluated to '/usr/diskuse' instead of a number
>ERROR: Target[df][_OUT_] ''/usr/diskuse'' evaluated to '/usr/diskuse' instead of a number
>WARNING: Skipping Update of df, inlast is not defined
>WARNING: Skipping Update of df, outlast is not defined
>
>В чём дело?

с www.mrtg.org:

...
Example:

Target[ezwf]: `/usr/local/bin/df2mrtg /dev/dsk/c0t2d0s0`

Note the use of the backticks (`), not apostrophes (') around the command.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

If you want to use a backtick in the command name this can be done but you must escape it with a backslash ...
....


скорее всего дело в этом - он же тебе говорит, что получает "/usr/diskuse" вместо ожидемого числа.

еще с www.mrtg.org:

...
External Monitoring Scripts
    if you want to monitor something which does not provide data via snmp you can use some external program to do the data gathering.

    The external command must return 4 lines of output:

Line 1
current state of the first variable, normally 'incoming bytes count'

Line 2
current state of the second variable, normally 'outgoing bytes count'

Line 3
string (in any human readable format), telling the uptime of the target.

Line 4
string, telling the name of the target.
...

а у тебя скрипт возвращает 5-ть значений. может mrtg на последнюю пустую строку и наплюет, но лучше все-таки ее убрать.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: MRTG показывает ошибки при получении данных из скрипта"
Сообщение от LS emailИскать по авторуВ закладки on 18-Ноя-02, 06:59  (MSK)
и лучше сделать для для нужных дисков

df | grep "/dev/XXXX" | grep -v "grep" | awk '{print $4}'

а то примонтируешь какую-нибудь дискету и покажет твой tail информацию совсем не о том устройстве, которое ты ожидал...

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: MRTG показывает ошибки при получении данных из скрипта"
Сообщение от VZ emailИскать по авторуВ закладки on 18-Ноя-02, 12:19  (MSK)
Да, у меня из-за плохой связи моё исправление не прошло в конференцию.
Я как только написал сюда. Нашёл в документации ссылку на backtiks (`)

>и лучше сделать для для нужных дисков
>
>df | grep "/dev/XXXX" | grep -v "grep" | awk '{print $4}'
>
>
>а то примонтируешь какую-нибуд%

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "RE: MRTG показывает ошибки при получении данных из скрипта"
Сообщение от VZ emailИскать по авторуВ закладки on 18-Ноя-02, 12:21  (MSK)
Да, у меня из-за плохой связи моё исправление не прошло в конференцию.
Я как только написал сюда. Нашёл в документации ссылку на backtiks (`)

>и лучше сделать для для нужных дисков
>
>df | grep "/dev/XXXX" | grep -v "grep" | awk '{print $4}'
>
>
>а то примонтируешь какую-нибудь дискету и покажет твой tail информацию совсем не
>о том устройстве, которое ты ожидал...

Спасибо, будем разбираться!
MRTG вроде заработал. Но есть одно - но.
MRTG запускается как демон, а через cron не хочет.
В поиске по форуму я нашёл подобную проблему, но решения там не было.
У меня в crontab:
0-59/5 * * * * /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg
В /var/log/cron
Nov 18 12:10:00 fbsd /usr/sbin/cron[3324]: (root) CMD (/usr/libexec/atrun)
Nov 18 12:10:00 fbsd /usr/sbin/cron[3325]: (root) CMD (/usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg)
Т.е. вроде запускается он - но не работает. Статистика пустая - через демон всё считает.
Как проверить работает ли скрипт через crontab?
Может что-то с правами?- у меня 755.
Кто подскажет?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "RE: MRTG показывает ошибки при получении данных из скрипта"
Сообщение от VZ emailИскать по авторуВ закладки on 18-Ноя-02, 12:36  (MSK)
Да, у меня из-за плохой связи моё исправление не прошло в конференцию.
Я как только написал сюда. Нашёл в документации ссылку на backtiks (`)

>и лучше сделать для для нужных дисков
>
>df | grep "/dev/XXXX" | grep -v "grep" | awk '{print $4}'
>
>
>а то примонтируешь какую-нибудь дискету и покажет твой tail информацию совсем не
>о том устройстве, которое ты ожидал...

Спасибо, будем разбираться!
MRTG вроде заработал. Но есть одно - но.
MRTG запускается как демон, а через cron не хочет.
В поиске по форуму я нашёл подобную проблему, но решения там не было.
У меня в crontab:
0-59/5 * * * * /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg
В /var/log/cron
Nov 18 12:10:00 fbsd /usr/sbin/cron[3324]: (root) CMD (/usr/libexec/atrun)
Nov 18 12:10:00 fbsd /usr/sbin/cron[3325]: (root) CMD (/usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg)
Т.е. вроде запускается он - но не работает. Статистика пустая - через демон всё считает.
Как проверить работает ли скрипт через crontab?
Может что-то с правами?- у меня 755.
Кто подскажет?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "RE: MRTG показывает ошибки при получении данных из скрипта"
Сообщение от LS emailИскать по авторуВ закладки on 18-Ноя-02, 14:56  (MSK)
>Да, у меня из-за плохой связи моё исправление не прошло в конференцию.
>
>Я как только написал сюда. Нашёл в документации ссылку на backtiks (`)
>
>
>>и лучше сделать для для нужных дисков
>>
>>df | grep "/dev/XXXX" | grep -v "grep" | awk '{print $4}'
>>
>>
>>а то примонтируешь какую-нибудь дискету и покажет твой tail информацию совсем не
>>о том устройстве, которое ты ожидал...
>
>Спасибо, будем разбираться!
>MRTG вроде заработал. Но есть одно - но.
>MRTG запускается как демон, а через cron не хочет.
>В поиске по форуму я нашёл подобную проблему, но решения там не
>было.
>У меня в crontab:
>0-59/5 * * * * /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg

enter после этой строки нажми...

PS в моей рекомендации по скрипту grep -v "grep" было лишним


>В /var/log/cron
>Nov 18 12:10:00 fbsd /usr/sbin/cron[3324]: (root) CMD (/usr/libexec/atrun)
>Nov 18 12:10:00 fbsd /usr/sbin/cron[3325]: (root) CMD (/usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg)
>Т.е. вроде запускается он - но не работает. Статистика пустая - через
>демон всё считает.
>Как проверить работает ли скрипт через crontab?
>Может что-то с правами?- у меня 755.
>Кто подскажет?


  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "RE: MRTG показывает ошибки при получении данных из скрипта"
Сообщение от VZ emailИскать по авторуВ закладки on 19-Ноя-02, 13:48  (MSK)
>>MRTG вроде заработал. Но есть одно - но.
>>MRTG запускается как демон, а через cron не хочет.
>>В поиске по форуму я нашёл подобную проблему, но решения там не
>>было.
>>У меня в crontab:
>>0-59/5 * * * * /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg
>
>enter после этой строки нажми...
>
Нет, не работает. И enter нажимал и буковку o нажимал (vi)
И следом за одной строчкой другое задание вставлял - и между ними enter нажимал. Не работает:(
Где посмотреть про cron и crontab и где ошибки его собираются.
Т.к. в /var/log/cron он пишет только то что пишет (см. ниже)

Написал скрипт /usr/local/etc/mrtg/stat
#!/bin/sh
echo 123 >> /usr/local/etc/mrtg/stat.log

При запуске: /usr/local/etc/mrtg/stat
Получаю в каталоге файл stat.log с содержимым 123
Запущу ещё раз - ещё добавится 123.

Выставляю задание на выполнение через crontab
В логах пишет что-то:
Nov 19 13:41:00 fbsd /usr/sbin/cron[740]: (root) CMD (/usr/local/etc/mrtg/stat)

Содержимое файла не изменилось. Т.е. скрипт не сработал.
Что я не так делаю? Вставка enter не помогает - или с руками что?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "RE: MRTG показывает ошибки при получении данных из скрипта"
Сообщение от Nikolaev D. emailИскать по авторуВ закладки on 19-Ноя-02, 16:02  (MSK)
Куда пишешь-то ? в (censored) :) ?
Если в /etc/crontab , тогда надо ТАК:

1 * * * * root /usr/sbin/бла-бла-бла | mail admin

mail для дебага, запуск раз в минуту, но рекомендую раз в 5 мин.

И "killall -1 cron"  выполнить опосля.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "RE: MRTG показывает ошибки при получении данных из скрипта"
Сообщение от AlexDavAron emailИскать по авторуВ закладки on 19-Ноя-02, 18:20  (MSK)
>Куда пишешь-то ? в (censored) :) ?
>Если в /etc/crontab , тогда надо ТАК:
>
>1 * * * * root /usr/sbin/бла-бла-бла | mail admin
>
> mail для дебага, запуск раз в минуту, но рекомендую раз в
>5 мин.
>
>И "killall -1 cron"  выполнить опосля.

либо  1 * * * * root /usr/sbin/ХХХ --loggin /var/log/mrtg.log

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру