Bug 7353 - Errors in mrtg configs: can't get CPU stat info in russian locale
: Errors in mrtg configs: can't get CPU stat info in russian locale
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/mrtg)
: unstable
: all Linux
: P2 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2005-07-12 12:24 by
Modified: 2006-04-26 13:36 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2005-07-12 12:24:30
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
------- Comment #1 From 2005-07-12 17:08:01 -------
Есть какие-нибудь возражения против того, чтобы считать приведённый "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 "$*"
------- Comment #2 From 2005-08-23 16:29:17 -------
Сделаю исправление вместе со следующим релизом mrtg.
------- Comment #3 From 2006-02-14 11:43:25 -------
Fixed in 2.13.2-alt1.