Thread Festplattenbelegung ausgeben+speichern (16 answers)
Opened by zottel335i at 2008-06-30 17:02

zottel335i
 2008-07-14 13:19
#112091 #112091
User since
2008-06-30
11 Artikel
BenutzerIn
[default_avatar]
Hallo wieder mal,

nachdem ich mir nun einige Grundlagen bzgl. Perl angeeignet habe, ist der erste Teil meines "Analyse"-Skriptes auch schon fertig.

Ich kann nun die gewünschten Informationen abfragen. Allerdings nur für Windowssysteme.

Ich bitte Euch darum mal über das Skript zu schaun und evtl. unsauber programmierte Stellen mit mir zu besprechen.

Viel wichtiger wäre mir Hilfe bei Vorüberlegungen und der Implementation für eine Abfrage von Linuxsystemen.

Mein Skript sieht bisher wie folgt aus:


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
#!/usr/bin/perl

use strict;
use IO::File;
use Win32;                              
use Win32::AdminMisc;   
use Win32::OLE qw (in);
use Net::SSH;

# Ordner, in dem die CSV-Datei liegt
my $dir = '.';
# Trennzeichen in der Datei 
my $sep = ';';


# Datei oeffnen
open(DATEN,'<c:\perl\systems.txt') or die "Konnte die Datei nicht öffnen";
# Inhalte abgreifen und splitten
while (defined(my $zeile = DATEN->getline))
{
 my ($FQDN, $OS, $HDD, $USER, $PW) = split(/;/,$zeile);
 
 # Abfrage der WindowsHosts
  if($OS eq 'win')
 {
  # Verbindungsaufbau
  my $conn_object = Win32::OLE->new('WbemScripting.SWbemLocator');
  my $server  = $conn_object->ConnectServer($FQDN, "root\\cimv2", $USER, $PW);
  
  # Abfrage des Datentraeger
  my $total; my $free;
  ($total, $free) = Win32::AdminMisc::GetDriveSpace("$HDD:\\");
  $total = $total / 1024 /1024;         # MegaByte!
  $free = $free / 1024 /1024;           # MegaByte!
  
  printf ("\n");
  printf ("Speicher gesamt: $total MB\n");
  printf ("Speicher verfuegbar: $free MB\n");
  }
 
 # Abfrage LinuxHosts
 if($OS eq 'lin')
 {
 # Verbindungsaufbau
  ????????????????????????????
 }
 
 
}close(DATEN);
printf ("\n");
printf("schleife tot...");


Die Logininformationen (IP,PW, Festplatte) lasse ich aus einer Datei holen. Später werde ich die Ergebnisse auch noch in eine Datei zurückschreiben lassen(bisher Standardausgabe).

Was brauche ich nun um die Speicherbelegung eines bestimmten Unix-Volumes abzufragen?

Ich stelle mir da sowas vor, wie einen SSH connect auf die Maschine. Dann eine "Eingabe" von df -h o.ä. Anschliessend sollte dann der Wert der Speicherbelegung abgegriffen werden.

Völlig unklar ist mir, ob ich dazu einen SSH-Client brauche, auf den Perl zugreift oder ob die Lib das schon alles mitbringt.
Auch die Realisierung des Codes macht mir noch Gedanken...


Vielen Dank für die Hilfe

Grüße,
zottel

View full thread Festplattenbelegung ausgeben+speichern