Thread Festplattenbelegung ausgeben+speichern
(16 answers)
Opened by zottel335i at 2008-06-30 17:02
Hallo Community,
mein Skript ist nun syntaktisch Fehlerfrei. Es lag einfach an ein paar ""... Das ganze sieht nun so 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 52 53 54 55 #!/usr/bin/perl use strict; use IO::File; use Win32; use Win32::AdminMisc; use Win32::OLE qw (in); # Ordner, in dem die CSV-Datei liegt my $dir = '.'; # Trennzeichen in der Datei my $sep = ';'; # Datei oeffnen open(DATEN,'<D:\reporting_script\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"); printf ("\n"); printf (""); } # Abfrage LinuxHosts if($OS eq 'lin') { # Verbindungsaufbau my $plink_dir = "D:\\reporting_script"; my $res_query = "df -Ph"; my $erg = qx{"$plink_dir\\plink.exe" -ssh -P 22 -pw $PW $USER\@$FQDN $res_query}; printf ("$erg"); } }close(DATEN); printf ("\n"); printf("schleife tot..."); Bisher habe ich das Skript lokal entwickelt und mit der Adresse 127.0.0.1 getestet. Jetzt wo das ganze via Netzwerk arbeiten soll (erstmal nur der Windowsteil) funktioniert wohl der Login nicht. Ich habe für die Variable $FQDN ein System aus dem Netzwerk angegeben. Die LoginIinformationen($User,$PW,$HDD) stimmen natürlich auch und händisch kann ich auf das System connecten. Das Skript fragt jedoch immer nur die Festplatten des lokalen Systems ab. Festplatte C, D, E usw. geben die "richtigen" Informationen zurück(allerdings sind das die Festplattendetails des lokalen Systems). Frage ich bspw. die Festplatte F, welche auf dem Remotesystem vorhanden ist, aber auf dem lokalen nicht, bekomme ich 0GB freier/verfügbarer Speicher angezeigt. Wo setze ich hier jetzt den Hebel an. Wie kann ich ein Troubleshooting durchführen? Bin nun wirklich überfragt!? Grüße, zottel |