| Summary: | Errors in mrtg configs: can't get CPU stat info in russian locale | ||
|---|---|---|---|
| Product: | Sisyphus | Reporter: | Victor Chusovitin <vchusovitin> |
| Component: | mrtg | Assignee: | Andrei Bulava <abulava> |
| Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
| Severity: | normal | ||
| Priority: | P2 | CC: | mike, oddity |
| Version: | unstable | ||
| Hardware: | all | ||
| OS: | Linux | ||
Есть какие-нибудь возражения против того, чтобы считать приведённый "Temporary solution" (с заменой LANG=C на LANG=POSIX) способом перманентного исправления этой ошибки? А то у меня прямо сходу есть не один, по-настоящему временный, способ: 1) $ LANG=C sudo /usr/bin/mrtg --user mrtg --group mrtg /etc/mrtg/mrtg.cfg 2) $ sudo su - -c '/usr/bin/mrtg --user mrtg --group mrtg /etc/mrtg/mrtg.cfg' Это известное свойство sudo - сохранять переменные окружения пользователя, запускающего sudo. Например, запуск 'sudo /etc/init.d/httpd restart' и последующий анализ переменных окружения apache вас очень сильно и неприятно удивит. Так что предлагаемое исправление скорее отодвинет (малоприятное) знакомство пользователя с sudo. Я сам уже ходил по граблям 'sudo bash', 'sudo mc', пока не открыл для себя 'su -' и перманентный способ запуска программ через sudo в окружении root, а не пользователя, запустившего sudo: $ cat ~/bin/sudo- #!/bin/sh sudo su - -c "$*" Сделаю исправление вместе со следующим релизом mrtg. Fixed in 2.13.2-alt1. |
For CPU stat MRTG uses perl script /usr/lib/mrtg2/helpers/cpuinfo.pl, which calls command "sar": `sar -u 1 10 | grep Average`. But sar's output is defined by LOCALE -- f.e. russian, and filter "|grep Average" shows NOTHING, because sar says "Среднее"... Temporary solution: in mrtg.conf I wrote in mrtg.cfg `LANG=C /usr/lib/mrtg2/helpers/cpuinfo.pl localhost linux` (but maybe another commands will have the same behaviour). Steps to Reproduce: 1. sudo /usr/bin/mrtg --user mrtg --group mrtg /etc/mrtg/mrtg.cfg 2. 3. Actual Results: WARNING: Problem with External get '/usr/lib/mrtg2/helpers/cpuinfo.pl localhost linux': Expected a Number for 'in' but got '' WARNING: Problem with Externale get '/usr/lib/mrtg2/helpers/cpuinfo.pl localhost linux': Expected a Number for 'out' but got '' ERROR: Target[machine][_IN_] ' $target->[0]{$mode} ' did not eval into defined data ERROR: Target[machine][_OUT_] ' $target->[0]{$mode} ' did not eval into defined data Expected Results: silent end