
#!/usr/bin/perl -w

# Este complemento permite conocer:
#
#  1- Ver la memoria libre disponible 
#  2- Ver la memoria que esta siendo utilizada 
#  3- Ver la memoria total del equipo en MB 
#  4- Conocer la utilizacion del CPU en los ultimos 5 segundos 
#  5- Conocer la utilizacion del CPU en los ultimo minuto 
#  6- Conocer la utilizacion del CPU en los ultimos 5 minutos
#
# Para ello se debe de ejecutar de la siguiente manera:
#
# perl check_asa_status.pl <Direccion ip> <Comunidad> <opcion a consultar> 
#
# Donde las siguiente opciones permiten ver: 

#  - mfree: Muestra el % de memoria libre 
#  - mused: Muestra el % de memoria utilizada 
#  - mtotal: Muestra la cantidad total de memoria del equipo en Mb 
#
#  - cpu5s: Muestra el % de utilizacion del cpu durante los ultimos 5 segundos 
#  - cpu1m: Muestra el % de utlizacion del cpu durante el ultimo minuto 
#  - cpu5m: Muestra el % de utilizacion del cpu dureante los ultimos 5 minutos
#

$IP = $ARGV[0];
$comunidad = $ARGV[1];
$tipo = $ARGV[2];

if (tipo eq "mfree" ||"mused"||"mtotal") {
	$mem_used = `snmpwalk -v 2c -c $comunidad $IP 1.3.6.1.4.1.9.9.48.1.1.1.5.1 | cut -b53-63`;
	$mem_free = `snmpwalk -v 2c -c $comunidad $IP 1.3.6.1.4.1.9.9.48.1.1.1.6.1 | cut -b53-63`;
	$mem_total = $mem_free+$mem_used;

	if ($tipo eq "mfree") {
		$uso = ($mem_free/$mem_total)*100;
		printf("%.2f",$uso);
	}
	if ($tipo eq "mused") {
		$uso = ($mem_used/$mem_total)*100;
		printf("%.2f",$uso);
	}
	if ($tipo eq "mtotal") {
		$total = ($mem_total)/1024/1024;
		printf("%4d", $total);
	}
}

if (tipo eq "cpu5s" ||"cpu1m"||"cpu5m") {
	$cpu_5m = `snmpwalk -v 2c -c $comunidad $IP 1.3.6.1.4.1.9.9.109.1.1.1.1.3.1 | cut -b55-57`;

	if ($tipo eq "cpu5s") {
		$cpu_5s = `snmpwalk -v 2c -c $comunidad $IP 1.3.6.1.4.1.9.9.109.1.1.1.1.5.1 | cut -b55-57`;
		printf("%.0f",$cpu_5s);
	}
	if ($tipo eq "cpu1m") {
		$cpu_1m = `snmpwalk -v 2c -c $comunidad $IP 1.3.6.1.4.1.9.9.109.1.1.1.1.4.1 | cut -b55-57`;
		printf("%.0f",$cpu_1m);
	}
	if ($tipo eq "cpu5m") {
		$cpu_5m = `snmpwalk -v 2c -c $comunidad $IP 1.3.6.1.4.1.9.9.109.1.1.1.1.3.1 | cut -b55-57`;
		printf("%.0f",$cpu_5m);
	}
}
