Thread Var für RAM?: Herausfinden ? MB -> RAM -> Server (5 answers)
Opened by Alex at 2004-12-31 00:31

schmeckzilla
 2004-12-31 02:00
#77733 #77733
User since
2003-09-09
23 Artikel
BenutzerIn
[default_avatar]
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|'

View full thread Var für RAM?: Herausfinden ? MB -> RAM -> Server