Thread Automatisches auslesen von Systemdaten,von denen nur bestimmte Zeilen in einer Textdatei ausgeben werden
(46 answers)
Opened by guest at 2011-10-11 10:02 Guest guest print und Data::Dumper sind gute Freunde! bei mir läuft folgendes: 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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 #!/usr/bin/perl use strict; use warnings; use Data::Dumper; my %SysInfo; get_cpu_info(\%SysInfo); get_mem_info(\%SysInfo); # Debug print Dumper(\%SysInfo); open(OUTFILE, "> ./sysinfo.txt") or die("$!"); foreach my $section (keys %SysInfo) { printf(OUTFILE "=== %s ===\n",$section); foreach my $name (keys( %{$SysInfo{$section}} )) { printf(OUTFILE "%s\t==>\t%s\n",$name, $SysInfo{$section}{$name}); } } close(OUTFILE); exit(0); sub get_cpu_info { my ($refSi) = @_; open(CPUINFO, "/proc/cpuinfo") or die("$!"); my @relevant_lines = grep(/(^processor|^cpu MHz)/, <CPUINFO>); close(CPUINFO); my $current_cpu; foreach my $info (@relevant_lines) { if ($info =~ /processor\s*:\s*(\d+)/) { $current_cpu = $1; } elsif ($info =~ /cpu MHz\s*:\s+(\S+)/) { $$refSi{'Central Processing Units'}{$current_cpu} = $1; } } } sub get_mem_info { my ($refSi) = @_; open(MEMINFO, "/proc/meminfo") or die("$!"); my @relevant_lines = grep(/(^MemTotal|^MemFree|^Buffers|^Cached)/, <MEMINFO>); close(MEMINFO); foreach my $info (@relevant_lines) { if ($info =~ /^(\w+):\s+(\d+)\s+(\w+)$/) { my $name = $1; my $amount = $2; my $unit = $3; $$refSi{'Memory Information'}{$name} = "$amount $unit"; } } } Ist übrigens eine OpenSuSE 11.3 Data::Dumper wirft aus: Code: (dl
)
1 $VAR1 = { (Ja, mein Heimserver hat nur so eine lahme CPU und so wenig RAM ;) ) Bei mir wird auch sysinfo.txt geschrieben. Aber selbst wenn sie leer wäre, wüsste ich das die Informationen korrekt gesammelt worden sind und kann den Fehler auf die Schreibfunktionen eingrenzen. Edit: Wichtig ist auch, das /proc/cpuinfo unter "cpu MHz" die aktuelle Taktung der CPU angibt. Moderne CPUs takten runter wenn es nichts zu tun gibt. Last edited: 2011-10-12 20:43:08 +0200 (CEST) |