#!/bin/env perl use Win32::OLE; use strict; use warnings; my $wmi = Win32::OLE->GetObject("winmgmts://./root/cimv2") or die "Failed getobject\n"; my $list, my $v; $list = $wmi->InstancesOf("Win32_OperatingSystem") or die "Failed getobject\n"; my $end_time = time; my ($total_mem, $free_mem, $used_mem, $mem_percent, $free_percent); foreach $v (in $list) { $total_mem = $v->{TotalVisibleMemorySize}; $free_mem = $v->{FreePhysicalMemory}; $used_mem = $total_mem - $free_mem; $mem_percent = sprintf("%.2f", $used_mem / $total_mem * 100); $free_percent = sprintf("%.2f", $free_mem / $total_mem * 100); print "Memory used: $mem_percent\%\n"; print "Memory free: $free_percent\%\n"; print "Memory total: $total_mem kb\n"; print "Memory used: $used_mem kb\n"; print "Memory free: $free_mem kb\n"; my $total_virtual_mem = $v->{TotalVirtualMemorySize}; my $free_virtual_mem = $v->{FreeVirtualMemory}; my $used_virtual_mem = $total_virtual_mem - $free_virtual_mem; my $used_virtual_mem_perc = ($total_virtual_mem - $free_virtual_mem) / $total_virtual_mem * 100; printf "Swap total:%d kb\n", $total_virtual_mem; printf "Swap free:%d kb\n", $free_virtual_mem; printf "Swap used:%d kb\n", $used_virtual_mem; printf "Swap used:%.2f %%\n", $used_virtual_mem_perc; }