Thread Var für RAM?: Herausfinden ? MB -> RAM -> Server
(5 answers)
Opened by Alex at 2004-12-31 00:31
Wenn Du das Modul Inline benutzen kannst, kannst Du auch das folgende Skript nehmen:
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 #!/usr/bin/perl use warnings; use strict; use Inline "C"; my ($totalram, $freeram) = sysinfo_as_list(); die "sysinfo failed" unless defined $totalram; print "totalram: $totalram\n"; print "freeram: $freeram\n"; # bei den nächsten beiden Zeilen ist der Bindestrich - durch den # Unterstrich _ zu ersetzen, dieser verschwindet komischerweise # immer hier im Board *wunder* --END-- --C-- #include <sys/sysinfo.h> #define MO_IV(x) sv_2mortal(newSViv(x)) void sysinfo_as_list() { Inline_Stack_Vars; struct sysinfo si; if(sysinfo (&si)) { return; } Inline_Stack_Reset; Inline_Stack_Push(MO_IV(si.totalram)); Inline_Stack_Push(MO_IV(si.freeram)); Inline_Stack_Done; } Der Quellcode stammt von Michael Schilli. Ich habe den Originalquelltext nur auf totalram und freeram gekürzt. Ansonsten kann man über den SysInfo-Aufruf noch uptime, load1, load5, load15, totalram, freeram, sharedram, bufferram, totalswap, freeswap und procs erfahren. Der Aufruf dauert ein Weilchen und sollte daher nicht bei jedem Skript aufgerufen werden. ;( Mehr Infos dazu und das vollständige Skript gibt es unter: http://www.linux-magazin.de/Artikel/ausgabe/2003/02/perl/perl.html use strict; use warnings;
perl -e 'eval reverse q| )51,1-,4,9,1,1-,7,22,5,8,8,3-,86-,71,51,1,51,86-,21,1,41,8,86-,24-,55-,95-(})001+_$(rhc{pam esrever tnirp|' |