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


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

echo -e "\e[91m MODO DE USO : kraken clonar_so 1 direccion_ip_equipo_remoto\e[0m"
echo -e "\e[91m ESTE MODULO CLONA UNA IMAGEN DEL SISTEMA OPERATIVO BASE EL CUAL PUEDE SER RESTAURADO EN OTRO DISCO\e[0m"
echo -e "\e[91m Usuario kraken Debe Existir Y Tener Permisos SUDO En Equipo Remoto A Clonar\e[0m"
exit;

fi


echo -e "\n"
echo -e "\e[93m ========== DETECTANDO SISTEMA OPERATIVO EN SERVIDOR : $1 ==============\e[0m"

	sshpass -p $2 ssh $1 -o ConnectTimeout=5  "exit" &> /dev/null

	if [ $? -eq 0 ]; then
	
		sshpass -p $2 ssh $1 -o ConnectTimeout=5  "lsblk | grep boot " > /tmp/disc1
		awk '{ print $1 }' /tmp/disc1 > /tmp/disc2
		cut -b 7-15 /tmp/disc2 > /tmp/disc3
		cut -b 1-3 /tmp/disc3 > /tmp/disc
		disco=$(cat /tmp/disc)
		
			sshpass -p $2 ssh $1 -o ConnectTimeout=5  "lsblk | grep $disco | head -n 1" 1> /tmp/disc11
			value=$(cat /tmp/disc11 | awk '{ print $4 }')

				echo -e "\e[93m Se Encontro El Sistema Operativo Base En El Disco $disco Con Un Espacio Total De $value \e[0m"
				echo -e "\e[93m Para Crear La Imagen Clon Favor Seleccione Una Ruta Donde Exista Espacio Libre Igual O Superior Al Espacio Total Del Disco A Clonar \e[0m"
				sshpass -p $2 ssh $1 -o ConnectTimeout=5  "df -H" 2> /dev/null
				echo -e "\e[93m Escriba La Ruta Donde Se Guardara La Imagen Clonada (ejemplo: /var (Escribe 'no' Para Cancelar) :: \e[0m"
				read respuesta
				nombre_imagen="clon_so"
				
				
				if [ $respuesta == "no" ]; then
				
					echo -e "\e[93m  Adios.... \e[0m"
					exit;
					
				else
				
					sshpass -p $2 ssh $1 -o ConnectTimeout=5  "echo $2 | sudo -S nohup dd if=/dev/$disco of=$respuesta/$nombre_imagen iflag=direct status=progress &" &> /tmp/progreso
					echo -e "\e[32m OPERANDO ESPERE.... \e[0m"
					tail -f /tmp/progreso
				
				
				fi
				
				
				
				
			

	
	
	
	else
	
		echo $1 > /tmp/login1_failed
	
	
	fi


										


acceso=$(cat /tmp/login1_failed)
log=$(cat /tmp/login1_log)



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

echo -e "\e[31m ========== SERVIDORES CON PROBLEMAS DE ACCESO (VALIDA PING O CREDENCIALES) ==============\e[0m"
echo -e "\e[31m $acceso \e[0m"
echo -e "\n"
echo -e "\e[93m --------------------- LOGS ------------------------ \e[0m"
echo -e "\e[93m $log \e[0m"
echo -e "\n"


rm -rf /tmp/disc1 &> /dev/null
rm -rf /tmp/disc2 &> /dev/null
rm -rf /tmp/disc3 &> /dev/null

exit 0;
										
										


