Win32::AdminMisc
am 27.08.2007 19:01:43 von Robert Berghaus
Hallo
Ich wollte für alle lokalen Laufwerke den freien Speicher=20
beobachten und bei Änderungen (maximal aber 1-mal pro Minute)=20
einen Logeintrag generieren.
Im Buch "Perl für System-Administratoren" stand was von=20
Win32::AdminMisc::GetDriveSpace, das habe ich aber nicht mehr=20
gefunden.
Ich habe mir daher mit "@aDir =3D `dir $_`;" geholfen (in $_ steht=20
das jeweilige Root-Verzeichnis (also C:\...) ).
Das funktioniert einwandfrei. Trotzdem würde mich interessieren,=20
ob es das Paket AdminMisc noch gibt. Oder gibt es irgendeinen=20
Nachfolger dafür?
--=20
Schönen Gruß aus dem Bergischen Land
Robert
Re: Win32::AdminMisc
am 27.08.2007 19:14:58 von Bjoern Hoehrmann
* Robert Berghaus wrote in de.comp.lang.perl.misc:
>Das funktioniert einwandfrei. Trotzdem würde mich interessieren,
>ob es das Paket AdminMisc noch gibt. Oder gibt es irgendeinen
>Nachfolger dafür?
Es gibt mehrere Module die u.a. GetDiskFreeSpace für Perl zugänglich
machen, zum Beispiel Win32::DriveInfo und Win32::DirSize. Nach dem
Win32 Funktionsnamen zu suchen, sollte ein passendes Modul hervor-
bringen.
--
Björn Höhrmann · mailto:bjoern@hoehrmann.de · http://bjoern.hoehrmann.de
Weinh. Str. 22 · Telefon: +49(0)621/4309674 · http://www.bjoernsworld.de
68309 Mannheim · PGP Pub. KeyID: 0xA4357E78 · http://www.websitedev.de/
Re: Win32::AdminMisc
am 28.08.2007 09:28:13 von Christian Winter
Robert Berghaus schrieb:
> Ich wollte für alle lokalen Laufwerke den freien Speicher beobachten und
> bei Änderungen (maximal aber 1-mal pro Minute) einen Logeintrag generieren.
>
> Im Buch "Perl für System-Administratoren" stand was von
> Win32::AdminMisc::GetDriveSpace, das habe ich aber nicht mehr gefunden.
> Ich habe mir daher mit "@aDir = `dir $_`;" geholfen (in $_ steht das
> jeweilige Root-Verzeichnis (also C:\...) ).
>
> Das funktioniert einwandfrei. Trotzdem würde mich interessieren, ob es
> das Paket AdminMisc noch gibt. Oder gibt es irgendeinen Nachfolger dafür?
Wenn's nur um das Auslesen von Infos geht, verwende ich sehr gerne
das WMI interface. Möglichkeiten, von Perl aus darauf zuzugreifen,
gibt es mehrere. Besonders praktisch, wenn auch noch nicht komplett
implementiert (z.B. Authentifizierung fehlt noch) ist der Zugriff
mittels DBD::WMI:
------------------------------------------------------------ -----
use strict;
use warnings;
use DBI;
my $wmi = DBI->connect('DBI:WMI:.'); # . = localhost
my $qry = $wmi->prepare( 'SELECT * FROM Win32_LogicalDisk' );
$qry->execute;
while( my @r = $qry->fetchrow() ) {
printf(
'%2s %9.02f MB %s',
$r[0]->{'Name'},
($r[0]->{'FreeSpace'} || 0) / 1048576,
$/
)
}
------------------------------------------------------------ -----
Ansonsten lässt sich auch direkt via Win32::OLE darauf zugreifen.
-Christian