Hola,
Soy bastante nuevo en Perl. No sé si esto será novato, medio o avanzado pero yo como soy novato lo pongo aquí.
Necesito un
script que me devuelva la ocupación de discos de una máquina WINDOWS. No quiero nada raro, simplemente tener ese valor para poderlo ejecutar "x" veces al día, almacenarlo y por último, si puede ser, enviarlo por
mail.
De momento me basta con que me devuelva el valor y lo almacene. Buscando he encontrado un ejemplillo pero no consigo hacer que funcione:
Using perl Syntax Highlighting
# Script para monitorizar el espacio libre de discos
use Win32::OLE('in');
use constant wbemFlagReturnImmediately => 0x10;
use constant wbemFlagForwardOnly => 0x20;
$computer = ".";
$objWMIService = Win32::OLE->GetObject
("winmgmts:\\\\$computer\\root\\CIMV2") or die "WMI connection failed.\n";
$colItems = $objWMIService->ExecQuery
("SELECT FreeSpace,Name,Size FROM Win32_LogicalDisk Where Name != 'D:'","WQL",wbemFlagReturnImmediately | wbemFlagForwardOnly);
foreach my $objItem (in $colItems)
{
$nombre = $objItem->{Name};
$estot = $objItem->{Size};
$eslib = $objItem->{FreeSpace};
$esocu = $estot - $eslib;
$ocup = sprintf("%d", ( $esocu * 100 ) / $estot);
print "$nombre @@ $ocup\n";
¿Qué es Win32_LogicalDisk? ¿Qué es WQL? Estoy muy pez, gracias.