lunes, 14 de febrero de 2011

Extraer información de una maquina

Esta ves me ha tocado crear un sencillo script que extrae información de una maquina, probadlo a ver que tal va, si tienes algun comentario por favor hacerlo saber.

---------------------------------------------------------------inicio del script---------------------------------------------------------------

#!/bin/bash

# Script desarrollado por Andrey Amado, usted es libre de realizar cualquier modificación sobre el archivo siempre y cuando mencione al autor o autores de dicho script, o en su defecto gastando una pola al creador del script.

if [ `id -u` -ne 0 ]; then

{

echo "El script debe ejecutarse como root"

exit 1

}

fi

if [ -e dump.txt ]; then rm dump.txt ; fi

echo "Bienvenido al script de informe del sistema\n"

pedir_tecla()

{

read -p "presione cualquier tecla" /dev/null

clear

hola

}

opt1_nm()

{

echo "El nombre del host es: " `hostname`

}

opt2_nm()

{

if [ -e /etc/debian_version ] ; then

echo "el sistema es Debian versión: " `cat /etc/debian_version`

else

if [ -e /etc/redhat-release ]

then

echo "el sistema es: " `cat /etc/redhat_version`

fi

fi

}

opt3_nm()

{

echo "El kernel del sistema operativo es: " `uname -r`

}

opt4_nm()

{

echo "El dominio al cual pertenece es: " `hostname -d`

}

opt5_nm()

{

echo "Las ips de la maquina son: "

ip addr show

}

opt6_nm()

{

echo "Las rutas son: "

ip route show

}

opt7_nm()

{

echo "los dns son: "

cat /etc/resolv.conf

}

opt8_nm()

{

echo "los discos conectados al sistema son: "

fdisk -l

}

opt9_nm()

{

echo "las particiones y uso son: "

df -kh

}

opt10_nm()

{

echo "El tamaño y uso de la RAM es: "

free -m

}

opt11_nm()

{

echo "El uso del procesador es: "

vmstat 2 10

}

opt12_nm()

{

echo "El procesador es: "

cat /proc/cpuinfo | grep 'model name'

}

opt13_nm()

{

echo "Los procesos corriendo son: "

ps xa | less

}

opt14_nm()

{

echo "Los puertos abiertos son: "

netstat -toanp | grep 'LISTEN'

}

opt15_nm()

{

echo "Los ultimos accesos son: "

last | tail -10

}

opt16_nm()

{

if [ `cat /proc/sys/net/ipv4/ip_forward` -eq 0 ] ; then

echo "El reenvio de paquetes esta desactivo"

else

echo "El reenvio de paquetes esta activado"

fi

}

opt17_nm()

{

echo "Los usuarios con acceso de root son: "

cat /etc/passwd | grep ':0:'

}

opt18_nm()

{

echo "Los usuarios con acceso al sistema son: "

cat /etc/passwd | grep 'bash'

}

opt19_nm()

{

echo "Actualizaciones: "

if [ -e /etc/debian_version ] ; then

apt-get update

apt-get upgrade -s

else

if [ -e /etc/redhat_version ]

then

yum update

fi

fi

}

opt20_nm()

{

echo "El estado de SELinux es: " `getenforce`

}

opt21_nm()

{

echo "Las reglas de iptables son: "

iptables -nL

iptables -t nat -nL

}

opt22_nm()

{

which chkrootkit

x=$?

if [ $x -eq 1 ] ; then

{

echo "Chkrootkit NO esta instalado en su sistema"

}

else

{

echo "Chkrootkit esta instalado en su sistema"

}

fi

}

opt23_nm()

{

echo "Los dispositivos scsi conectados al sistema son: "

lsscsi

}

opt24_nm()

{

echo "Los dispositivos usb conectados al sistema son: "

lsusb

}

opt25_nm()

{

echo "El archivo en donde se esta guardando la información es dump.txt en el directorio en: " `pwd`

for i in `seq 1 24`;

do

opt`echo $i`_nm >> dump.txt

echo "\n" >> dump.txt

done

}

sel_opcion()

{

read -p "Seleccione una opción: " opc

echo "\n"

case $opc in

1)

opt1_nm

pedir_tecla

;;

2)

opt2_nm

pedir_tecla

;;

3)

opt3_nm

pedir_tecla

;;

4)

opt4_nm

pedir_tecla

;;

5)

opt5_nm

pedir_tecla

;;

6)

opt6_nm

pedir_tecla

;;

7)

opt7_nm

pedir_tecla

;;

8)

opt8_nm

pedir_tecla

;;

9)

opt9_nm

pedir_tecla

;;

10)

opt10_nm

pedir_tecla

;;

11)

opt11_nm

pedir_tecla

;;

12)

opt12_nm

pedir_tecla

;;

13)

opt13_nm

pedir_tecla

;;

14)

opt14_nm

pedir_tecla

;;

15)

opt15_nm

pedir_tecla

;;

16)

opt16_nm

pedir_tecla

;;

17)

opt17_nm

pedir_tecla

;;

18)

opt18_nm

pedir_tecla

;;

19)

opt19_nm

pedir_tecla

;;

20)

opt20_nm

pedir_tecla

;;

21)

opt21_nm

pedir_tecla

;;

22)

opt22_nm

pedir_tecla

;;

23)

opt23_nm

pedir_tecla

;;

24)

opt24_nm

pedir_tecla

;;

25)

opt25_nm

pedir_tecla

;;

default)

exit 0

;;

esac

}

hola()

{

echo "---------------------Menu principal------------------\nPresione el numero de la opción que desea ver\n"

echo "1. Nombre del sistema"

echo "2. Version del sistema operativo"

echo "3. Version del kernel"

echo "4. Nombre del dominio"

echo "5. Ips de la maquina"

echo "6. Primeras 10 rutas de la maquina"

echo "7. Dns de la maquina"

echo "8. Discos del sistema"

echo "9. Particiones del disco duro y uso"

echo "10. Tamaño y uso de ram"

echo "11. Uso de procesador"

echo "12. Tipo de procesador"

echo "13. Procesos corriendo"

echo "14. Puertos abiertos"

echo "15. Ultimos accesos"

echo "16. Reenvio de paquetes"

echo "17. Usuarios root en el sistema"

echo "18. Usuarios con acceso al sistema"

echo "19. Tiene actualizaciones?"

echo "20. SELinux activado?"

echo "21. Reglas de iptables"

echo "22. Tiene chkrootkit?"

echo "23. Dispositivos scsi"

echo "24. Dispositivos usb"

echo "25. Si usted quiere realizar todas operaciones de testo y guardarlas en un archivo"

echo "Presione cualquier otra tecla para salir\n"

sel_opcion

}

hola

------------------------------------------------------------------------------------------fin del script-----------------------------------------------------------------