Portál AbcLinuxu, 8. listopadu 2025 12:22
priklad: output: physical memory: Total: 4G - Used: 862M (83%) - Free: 3.16G (43%) output: physical memory: Total: 4G - Used: 1.5G (94%) - Free: 3.16G (95%)perl skript ../nagiosgraph/etc/map obsahuje pravidla a staticky prevadi jednotky (M=*1000*2,G=*1000*3) a uklada ro rrd, ale pokud se jednotky meni ve vystupu dynamicky (862M vs 1.5G ), je potreba se s tim poprat - pokus c1. aka brute-force (zachytavam jednotky [G|B] regexpem ($2,$4,$6) a pak je tam ta silenost :) jak prepsat "lepe" trolo...lolo sekci? bez dalsich modulu pls
/output:.*physical memory: Total: ([.0-9]+)(\w) - Used: ([.0-9]+)(\w) \(\d+%\) - Free: ([.0-9]+)(\w)/ and do {
# trololo...
my $_memcap = 0.0;
my $_memused = 0.0;
my $_memfree = 0.0;
if ( $2 eq 'M' ) { $_memcap = $1*1024**2}
if ( $2 eq 'G' ) { $_memcap = $1*1024**3}
if ( $4 eq 'M' ) { $_memused = $3*1024**2}
if ( $4 eq 'G' ) { $_memused = $3*1024**3}
if ( $6 eq 'M' ) { $_memfree = $5*1024**2}
if ( $6 eq 'G' ) { $_memfree = $5*1024**3}
# ...lololo
push @s, [ 'MEM',
[ 'mem_capacity', GAUGE, $_memcap ],
[ 'mem_free', GAUGE, $_memfree ],
[ 'mem_used', GAUGE, $_memused ] ];
};
#za predpokladu, ze jednotky mozu byt len B,K,M,G alebo T
my %size_map = (T=>1024**4,G=>1024**3,M=>1024**2,K=>1024, B=>1);
$_memcap = $1*$size_map{$2};
$_memused = $3*$size_map{$4};
$_memfree = $5*$size_map{$6};
priklad http://pastebin.com/fX27XaTg
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.