Monitorizar los PCs encendidos


Aquí teneis un pequeño programita con el que podreis monitorizar qué ordenadores están encendidos en una red a base de un pequeño script en perl.

Tengo a mi cargo un aula universia de acceso a internet
y, entre otras cosas, tengo que hacer estadísticas de uso del aula. Así que decidí hacer un
pequeño programita en perl para que me guardase el número de PCs que están encendidos en un
determinado momento. Inspirándome en un artículo de Guillem
decidí utilizar la herramienta ping para llevar este control, suponiendo que cuando un ordenador
no se usa, está apagado.

Básicamente lo que voy haciendo es recorrer todos los nodos haciéndole ping a cada uno de ellos. El resultado, aparte de sacarlo por
pantalla, lo guardo en un fichero de logs. Creo que lo que hace el programa se entiende fácilmente aunque no hayais usado perl nunca. 😉

Como veis, el programilla es una chorrada, pero supongo que a alguien le puede ser útil. También es fácilmente mejorable por los
expertos en perl (yo no lo soy) 😉

#!/usr/bin/perl -w

use strict;

my $red = “10.1.25.”;
my $nodo_inicio = “2”;
my $nodo_final = “40”;
my $nodo;
my $timeout=3 ; #timeout del ping
my $fecha;
my $count = 0; # El número de nodos encendidos
my $logfile=”/home/golan/log/numpcs.log”;

# Recorro todos los nodos
foreach ($nodo_inicio..$nodo_final)
{
$nodo=$_;
#”miramos sistema $red$nodo\n”;
system “ping -c 1 -w $timeout $red$nodo > /dev/null 2>&1 “;
my $valor_ret = $? >> 8;
if ($valor_ret == 0 )
{
# Estamos en que el PC está encendido
$count++;
print “El equipo Universia$nodo está ON\n”;
}

}

print “\nEl número total de nodos : $count\n”;

chomp($fecha=`date`);
open LOGFILE, “>> $logfile” or die “No se pudo abrir $logfile ($!)”;
select LOGFILE;
print “$fecha -> Número de PCs: $count\n”;
close LOGFILE;

# Procesado posterior?

exit 0;

Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=1451 por un robot nigromante, si crees que puede mejorarse, por favor, contactanos.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.