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


if [ -z $1 ] || [ $# -ne 3 ]; then

echo -e "\e[91m PARAMETROS NECESARIOS: ubicacion/archivo_listado_usuarios_eliminar - (ejemplo: /home/usuario/usuarios.txt)\e[0m"
echo -e "\e[91m MODO DE USO : kraken eliminar_usuarios 1 nombre_inventario ubicacion/archivo_listado_usuarios_eliminar\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

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

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

if [ ! -z $2 ]
then

        for a in ${arreglo[@]}
        do
		
		sshpass -p $3 ssh $a -o StrictHostKeyChecking=no -o ConnectTimeout=5 "exit" &>> /tmp/eliminado_log
		
		if [ $? -eq 0 ]; then
		
			for b in ${arreglo1[@]}
			do
		
				echo $a >> /tmp/eliminado_log
				sshpass -p $3 ssh $a -o ConnectTimeout=5 "echo $3 | sudo -S userdel $b" &>> /tmp/eliminado_log
				
					if [ $? -eq 0 ]
					then
					
							echo $a >> /tmp/eliminado_service1
							echo $b >> /tmp/eliminado_service
							
					else

							echo $a >> /tmp/eliminado_service11
					fi
			done
			
		else
		
				echo $a >> /tmp/eliminado_failed
				
		fi
		
		done
		
else

			echo -e "PARAMETRO = ubicacion/nombre_archivo_a_copiar remotamente - (ejemplo: /home/usuario/archivo.tar)" 
			exit;
			
fi

perl -i -ne 'print if ! $x{$_}++' /tmp/eliminado_service1
perl -i -ne 'print if ! $x{$_}++' /tmp/eliminado_service
perl -i -ne 'print if ! $x{$_}++' /tmp/eliminado_service11

si=$(cat /tmp/eliminado_service1)
user=$(cat /tmp/eliminado_service | wc -l)
fallo=$(cat /tmp/eliminado_failed)
total_ok=$(cat /tmp/eliminado_service1 | wc -l)
cat /tmp/eliminado_service11 >> /tmp/eliminado_failed
usuarios=$(cat /tmp/eliminado_service11)
total_nok=$(cat /tmp/eliminado_failed | wc -l)
log=$(cat /tmp/eliminado_log )


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

echo -e "\e[32m ========== USUARIOS ELIMINADOS EN LOS SIGUIENTES SERVIDORES ==============\e[0m"
echo -e "\e[32m $si \e[0m"
echo -e "\n"
echo -e "\e[31m ========== USUARIOS NO ELIMINADOS EN LOS SIGUIENTES SERVIDORES (NO EXISTEN O FALTA SUDO) ==============\e[0m"
echo -e "\e[31m $usuarios \e[0m"
echo -e "\n"
echo -e "\e[31m ========== SERVIDORES CON PROBLEMAS ACCESO VALIDE PING O CREDENCIALES ==============\e[0m"
echo -e "\e[31m $fallo \e[0m"
echo -e "\n\n"
echo -e "\e[93m Servidores Ok: $total_ok        Servidores Failed: $total_nok   Total Usuarios Eliminados: $user\e[0m"
echo -e "\n\n"
echo -e "\e[93m --------------------- LOGS ------------------------ \e[0m"
echo -e "\e[93m $log \e[0m"


rm -f /tmp/eliminado_service &> /dev/null
rm -f /tmp/eliminado_service11 &> /dev/null
rm -f /tmp/eliminado_failed &> /dev/null
rm -f /tmp/eliminado_log &> /dev/null
rm -f /tmp/eliminado_service1 &> /dev/null

exit 0;
		
