URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 62034
[ Назад ]
Исходное сообщение
"mem.pl"
Отправлено .Ya. , 22-Ноя-05 17:48
Добрый день. Может кто то сталкивался с такой проблемой или знает как ее решить подскажите не проходите мимо :). Поставил я mrgt версии 2.12.2, страница появилась а на ней ничего не отображается. Если с консоли то ./mbmon показывает температуру проца.
А все остальные не работают при запуске файла loadavg ничего не отображает, а при mem.pl выводит:
Use of uninitialized value in addition (+) at ./mem.pl line 69.
Use of uninitialized value in addition (+) at ./mem.pl line 69.
0
0
Содержание
- mem.pl,.Ya., 19:53 , 22-Ноя-05
- mem.pl,.Ya., 16:41 , 23-Ноя-05
Сообщения в этом обсуждении
"mem.pl"
Отправлено .Ya. , 22-Ноя-05 19:53
Странно что на одном сервере работает, а на другом, к сожалению, нет. Я просмотрел код и увидел что ramCached выводит, а ramBuffers,ramTotal,ramFree даный не передает. Подскажите правильно записаны регулярные выражения для парсинга /proc/meminfo
часть кода mem.pl
------------------------------------------------
initialize();
my @input = `cat /proc/meminfo`;
shift @input; shift @input; shift @input;
my %info = ();
foreach (@input) {
## vsego operativki
if ($_ =~ /^MemTotal:/i) {
(
$info{'tmp'},
$info{'ramTotal'},
$info{'tmp'},
) = split(/\s+/, $_);
}
## vsego svobodnoy RAM
if ($_ =~ /^MemFree:/i) {
(
$info{'tmp'},
$info{'ramFree'},
$info{'tmp'},
) = split(/\s+/, $_);
}
##operativy pod bufera
if ($_ =~ /^Buffers:/i) {
(
$info{'tmp'},
$info{'ramBuffers'},
$info{'tmp'},
) = split(/\s+/, $_);
}
## pod cache
if ($_ =~ /^Cached:/i) {
(
$info{'tmp'},
$info{'ramCache'},
$info{'tmp'},
) = split(/\s+/, $_);
}
---------------------------------------------------
"mem.pl"
Отправлено .Ya. , 23-Ноя-05 16:41
Проблема была в регулярных выражениях. Вот так работает :)
my $ram;
## vsego operativki
$ram=`cat /proc/meminfo`;
if ($ram =~ /MemTotal:.*?([0-9]*) kB/i)
{ $info{'ramTotal'} = $1; }
foreach (@input) {
...
...
...
}