#!/usr/bin/env bash
##############################################################
#     Script Para Automatizacion De Kraken Console           #
#           Author: Marian Sanchez                           #
##############################################################

if [ $# -ne 3 ]; then

echo -e "\e[91m PARAMETROS NECESARIOS: ruta/nombre_archivo_usuarios_a_buscar (ejemplo: /home/kraken/usuarios.txt \e[0m"
echo -e "\e[91m MODO DE USO : kraken buscar_usuarios 1 nombre_inventario /home/kraken/usuarios.txt\e[0m"
exit;

fi

ls /home/kraken/clientes/$1 &> /dev/null

if [ $? -ne 0 ]; then

	echo -e "\e[91m ARCHIVO DE INVENTARIO $1 NO EXISTE EN /home/kraken/clientes/\e[0m"
	exit 1;
	
fi


ls $2 &> /dev/null

if [ $? -ne 0 ]; then

	echo -e "\e[91m ARCHIVO $2 CON LISTADO DE USUARIOS NO EXISTE EN LA RUTA ESPECIFICADA\e[0m"
	exit 1;
	
fi

readarray -t usuarios < $2

readarray -t arreglo < /home/kraken/clientes/$1

echo -e "\n"
echo -e "\e[93m ========== BUSQUEDAD USUARIOS EN LOS SERVIDORES DEL INVENTARIO: $1 ==============\e[0m"


 for b in ${arreglo[@]}
 do
		
		
	for c in ${usuarios[@]}
	do
	
                sshpass -p $3 ssh $b -o ConnectTimeout=5  -o "StrictHostKeyChecking=no" "cat /etc/passwd | grep $c" &> /dev/null


                if [ $? -eq 0 ]
                then
										
						echo -e "\e[32m $b OK \e[0m"
						echo $b >> /tmp/user_grupal_foundX
						echo "------------------------------------" >> /tmp/user_grupal_found1
						echo "SERVIDOR : $b" >> /tmp/user_grupal_found1
						echo "USUARIO : $c " >> /tmp/user_grupal_found1
						echo "------------------------------------" >> /tmp/user_grupal_found1

                else
						echo -e "\e[31m $b FAIL \e[0m"
                        echo $b >> /tmp/user_grupal_found_failed1

                fi

        done
		
done

sort /tmp/user_grupal_found_failed1 | uniq > /tmp/user_grupal_found_failed
sort /tmp/user_grupal_foundX | uniq > /tmp/user_grupal_found

rm -f /tmp/user_grupal_found_failed1 &> /dev/null
rm -f /tmp/user_grupal_foundX &> /dev/null

si=$(cat /tmp/user_grupal_found)
no=$(cat /tmp/user_grupal_found_failed)
total_ok=$(cat /tmp/user_grupal_found | wc -l)
total_nok=$(cat /tmp/user_grupal_found_failed | wc -l)
log=$(cat /tmp/search_user_grupal_log)
detectado=$(cat /tmp/user_grupal_found1)

echo -e "\e[93m ---------------------------------------------------------- \e[0m"
echo -e "\n"

echo -e "\e[32m ========== SERVIDORES CON USUARIOS DETECTADOS ==============\e[0m"
echo -e "\e[32m $si \e[0m"
echo -e "\n"

echo -e "\e[31m ========== SERVIDORES DONDE NO SE ENCUENTRAN USUARIOS ==============\e[0m"
echo -e "\e[31m $no \e[0m"
echo -e "\n"
echo -e "\e[93m Servidores Con Usuarios Encontrados: $total_ok	  Servidores Con Usuarios No Encontrados: $total_nok  \e[0m"
echo -e "\n\n"
echo -e "\e[93m --------------------- USUARIOS ENCONTRADOS ------------------------ \e[0m"
echo -e "\e[93m $detectado \e[0m"
echo -e "\n\n"
echo -e "\e[93m --------------------- LOGS ------------------------ \e[0m"
echo -e "\e[93m $log \e[0m"

rm -f /tmp/search_user_grupal_log &> /dev/null
rm -f /tmp/user_grupal_found &> /dev/null
rm -f /tmp/user_grupal_found_failed &> /dev/null
rm -f /tmp/user_grupal_found1 &> /dev/null


exit 0;
