Portál AbcLinuxu, 9. května 2025 19:17
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.