#!/bin/bash
# recopilator.sh
# by Miguel Angel Torres aka mate
# recopila información del sistema.
 
separador()
{
# función encargada de imprimir el separador entre secciones
 
	echo '****************************************************************************'
	# comprueba si el primer parámetro contiene algo
	if [ -n "$1" ]; then
	  echo $1
	else
	  echo ''
	fi
}
 
ejecutaComando()
{
	separador "$1"
	separador
	$2
	separador
}
 
clear
separador "Informe Linux ($LOGNAME)"
separador
 
# versión y demás del kernel.
ejecutaComando 'uname -a (versión de kernel)' "uname -a"
 
# tiempo de funcionamiento
ejecutaComando 'uptime (tiempo sistema levantado)' uptime
 
# lista de procesos en ejecución
ejecutaComando 'ps (lista de procesos)' ps
 
# modulos cargados
ejecutaComando 'lsmod (modulos cargados)' lsmod
 
# seguridad: shadow passwords
# no funciona
if [ "$LOGNAME" = "root" ]; then
	ejecutaComando '/etc/shadow' "[-f '/etc/shadow']; || echo 'las contraseñas no están en shadow'"
fi
 
# seguridad: shadow passwords
# no funciona
if [ "$LOGNAME" = "root" ]; then
	ejecutaComando '/etc/shadow' "[-f '/etc/shadow']; &&  echo 'las contraseñas están en shadow'"
fi
 
# puntos de montaje (mount o /etc/mtab)
ejecutaComando 'mount (fs montados)' "mount"
 
# puntos de montaje al arrancar (/etc/fstab)
ejecutaComando '/etc/fstab' "cat /etc/fstab"
 
# hardware: estado discos
ejecutaComando 'df -k (estado discos)' "df -k"
 
# hardware: dispositivos PCI
ejecutaComando 'lspci (dispositivos PCI)' lspci
 
# hardware: CPU
ejecutaComando '/proc/cpuinfo' "cat /proc/cpuinfo"