nixp.ru v3.0

21 октября 2017,
суббота,
09:44:27 MSK

DevOps с компанией «Флант»
grisha написал 30 сентября 2008 года в 09:52 (410 просмотров) Ведет себя как мужчина; открыл 34 темы в форуме, оставил 202 комментария на сайте.

Поставил vnstat (мониторить трафик). На ящик руту стала приходить такая ошибка:

[: ls -l /var/db/vnstat | wc -l: bad number. Верна ли моя догадка? :)

Дело в том что после установки фря написала что стоит скопировать в crontab строчку из /usr/local/share/doc/vnstat/vnstat-cron такого содержания:

*/5 ** root if [ -x /usr/local/bin/vnstat ] && [ 'ls -l /var/db/vnstat | wc -l' -ge 1 ]; then /usr/local/bin/vnstat -u ; fi

Я это понял так, что крон через каждые 5минут будет обнавлять базу данных внстат от имени рута и выводить в ней все строчки (что означает параметр -x и -ge?). После этого стали приходить ошибки на почту. Если я набираю vnstat, выдается что еще недостаточно данных записано. Правильно ли я понимаю, что бэд намбер означает что плохой номер, т.е. нечего вывести на экран из базы данных? Почему данные не пишутся в базу — ведь я уже зашел на несколько страниц в интернете?

Anarchist
grisha
Поставил vnstat (мониторить трафик). На ящик руту стала приходить такая ошибка:

[: ls -l /var/db/vnstat | wc -l: bad number. Верна ли моя догадка? :)

Дело в том что после установки фря написала что стоит скопировать в crontab строчку из /usr/local/share/doc/vnstat/vnstat-cron такого содержания:

*/5 ** root if [ -x /usr/local/bin/vnstat ] && [ 'ls -l /var/db/vnstat | wc -l' -ge 1 ]; then /usr/local/bin/vnstat -u ; fi

Не парь людЯм мозг.

1. О несовершенстве системы портов в Фре я многократно предупреждал.

Ты уверен, что не было потери форматирования при выводе сообщения?

2. Попробуй выполнить команду в консоли.

3. Собственно команду и строку из crontab приведи в нормально читемом виде (hint: use tag 'code’)

grisha
Я это понял так, что крон через каждые 5минут будет обнавлять базу данных внстат  от имени рута и выводить в ней все строчки (что означает параметр -x и -ge?).

Генеральный руководящий документ не помогает?

grisha
После этого стали приходить ошибки на почту. Если я набираю vnstat, выдается что еще недостаточно данных записано. Правильно ли я понимаю, что бэд намбер означает что плохой номер, т.е. нечего вывести на экран из базы данных? Почему данные не пишутся в базу — ведь я уже зашел на несколько страниц в интернете?

Ты чего ждал (хотел)?

Выясняй почему vnstat не работает.

grisha

Схалтурил… Прочитал на немецком форуме — у некоторых камерадов тоже такая проблема, посоветовали поставить права на /var/db/vnstat/vr0 777. У меня там 2 файла .vr0 (это зачем?) и vr0 c правами 644 были, поменял все на 777 (зачем я это сделал? :)). После этого команда vnstat заработала. Но долбанные сообщения с bad number продолжали приходить на почту руту. ls -l /var/db/vnstat wc -l — это шо за хрень? Когда ее убрал, рассылка писем закончилась. Короче нихрена не понял — буду разбираться :)

grisha

Поставил права обратно как было 644 на .vr0 vr0 — тоже работает :). И для рута и для юзера vnstat выполняется и мониторит трафик на vr0

Anarchist
grisha
Схалтурил… Прочитал на немецком форуме — у некоторых камерадов тоже такая проблема, посоветовали поставить права на /var/db/vnstat/vr0 777. У меня там 2 файла .vr0 (это зачем?) и vr0 c правами 644 были, поменял все на 777 (зачем я это сделал? :)).

777 — это не плохо, а очень плохо.

grisha
ls -l /var/db/vnstat wc -l — это шо за хрень? Когда ее убрал, рассылка писем закончилась. Короче нихрена не понял — буду разбираться :)

Говорят же: читать умные доки… До просветления.

Ссылку дал.

Сроку тебе — месяц. Потом устроим экзамен :)

Далее: как я и говорил: мэйнтейнер порта схалтурил.

Во-первых: опция '-l' у 'ls' здесь лишняя.

Во-вторых: в приведённом выражении допущена грубая ошибка, пропущен символ перенаправления вывода (pipe). Правильно писать

# ls /var/db/vnstat | wc -l

Что делает это выражение? Да считает файлы в каталоге.

В качестве д/з — дополнительный вопрос: «$почему опция '-l' на результат не влияет$"?

fly4life
Anarchist
В качестве д/з — дополнительный вопрос: «$почему опция '-l' на результат не влияет$"?

На результат выполнения того, что привёл автор, ещё как влияет. А почему — д/з уже тебе ;).

Anarchist
fly4life
На результат выполнения того, что привёл автор, ещё как влияет. А почему — д/з уже тебе ;).

Зануда ;)

Ну выводит ls -l не интересующую меня строчку с общим итогом, ну и что?… :)

fly4life
Anarchist
Зануда ;)

Ну выводит ls -l не интересующую меня строчку с общим итогом, ну и что?… :)

Это она тебя не интересует ;). Эта самая строчка увеличивает на единицу счетчик «wc -l», что в свою очередь искажает результат сравнения '-ge 1\′.

Возможно, сама по себе конструкция, передаваемая крону, не очень красивая, но если grisha решил ею пользоваться без изменений, то нюанс с «ls -l» придётся учитывать.