Manual - Script Bash
Manual - Script Bash
Scipt Bash
Integrantes
09/07/2022
ÍNDICE
I. Menú principal con Whiptail ....................................................................................... 1
#!/bin/bash
salir=0
while [ $salir -eq 0 ]; do
function MenuPrincipal() {
opcion_menu_1=$(whiptail --title "Menu principal" --menu "Elige una opción"
12 50 4 \
"1" "Ardministracion de Usuarios" \
"2" "Estado de PC" \
"3" "Instalación PSA" \
"4" "Cerrar Menu" 3>&1 1>&2 2>&3)
case $opcion_menu_1 in
1)
function Menu_User(){
...
}
;;
2)
function Menu_Estado(){
...
}
;;
3)
function Menu_Instalacion(){
...
}
;;
4)
salir=1
;;
esac
}
MenuPrincipal
Menu_User
Menu_Estado
Menu_Instalacion
done
3
function Menu_User(){
opcion_menu_2=$(whiptail --title "Ardministracion de Usuarios" --menu
"Seleccione" 11 50 3 \
"1" "Crear usuario" \
"2" "Borrar usuarios" \
"3" "Regresar" 3>&1 1>&2 2>&3)
...
elif [ $opcion_menu_2 = "2" ];then
...
elif [ $opcion_menu_2 = "3" ];then
MenuPrincipal
fi
}
;;
Al seleccionar la opción de Crear usuario se abrirá un menú el cual contendrá las opciones
Crear mediante archivo y Crear manualmente.
4
salir=0
while [ $salir -eq 0 ]; do
menu_item1=$(whiptail --title "Ardministracion de Usuaios" --menu
"Seleccione" 11 50 3 \
"1" "Crear mediante archivo'" \
"2" "Crear manualmente" \
"3" "Regresar" 3>&1 1>&2 2>&3)
case $menu_item1 in
1)
sh crearUser_archivo.sh
;;
2)
sh crearUser_manual.sh
...
;;
3)
Menu_User
;;
esac
done
Al seleccionar la opción Crear mediante archivo iniciará la ejecución del archivo shell script
nombrado crearUser_manual.sh que contiene las siguientes instrucciones de comandos
#!/bin/bash
ingreso_user=$(whiptail --title "Creacion de usuario por archivo" \
--inputbox "Ingrese nombre y extension de
archivo" 11 50 \
3>&1 1>&2 2>&3)
else
whiptail --title "Aviso" \
--msgbox "El archivo de usuarios no existe...☜(゚ヮ゚☜)" 11 50
exit 1
fi
Una vez realizada las validaciones se almacenan los datos en variables y se realiza el envío
de información para la creación de usuarios
#creando usuario
sudo useradd -m -s /bin/bash -c $CGECOS $LOGIN
#agregando password
echo "$LOGIN:$PASSWORD" | sudo chpasswd --md5
done
#creando usuario
sudo useradd -m -s /bin/bash -c $CGECOS $LOGIN
#agregando password
echo "$LOGIN:$PASSWORD" | sudo chpasswd --md5
Se pedirá que escriba la información necesaria del usuario para su creación manual y se
enviará la información para la creación del usuario.
salir=0
while [ $salir -eq 0 ]; do
menu_item2=$(whiptail --title "Ardministracion de Usuaios" --menu
"Seleccione" 11 50 3 \
"1" "Borrar mediante archivo'" \
"2" "Borrar manualmente" \
"3" "Regresar" 3>&1 1>&2 2>&3)
case $menu_item2 in
1)
sh deletUser_archivo.sh
;;
2)
sh deletUser_manual.sh
...
;;
3)
Menu_User
;;
esac
done
#!/bin/bash
else
whiptail --title "Aviso" \
--msgbox "El archivo de usuarios no existe...☜(゚ヮ゚☜)" 11 50
exit 1
fi
Una vez realizada las validaciones se almacenan los datos en variables y se realiza el envio
de información para la eliminación de usuarios.
#borrando usuario
sudo userdel -r $LOGIN
done
Al seleccionar la opción Borrar manualmente del menú se realizará la ejecución del archivo
deletUser_manual.sh el cual contiene las siguientes instrucciones de comandos
9
#!/bin/bash
#borrando usuario
sudo userdel -r $LOGIN
III. ESTADO DE PC
En el menú principal la opción Estado de PC este ejecutará la siguiente función el cual
contiene un menú que contiene las opciones de Mostrar Estado, Actualizar Log y
Configuración
function Menu_Estado(){
salir=0
while [ $salir -eq 0 ]; do
opcion_menu_3=$(whiptail --title "Estado de PC" --menu "Seleccione" 12 50 4 \
"1" "Mostrar Estado" \
"2" "Actualizar Log" \
"3" "Configuracion" \
"4" "Regresar" 3>&1 1>&2 2>&3)
fi
done
}
;;
En este archivo se valida la existencia de directorio y se usa como base el archivo de texto
cant.txt para verificar la cantidad de logs a imprimir
#!/bin/bash
FOLDER=statepc
#Existe la carpeta?
if [ -d "$FOLDER" ]
then
#El directorio existe
var1=`ls statepc | wc -l`
else
#El directorio no existe
mkdir statepc
var1=`ls statepc | wc -l`
fi
#Existen archivos?
if [ $var1 -ge 1 ]
then
#Existen
#Calidar tengo y quiero
FILE="cant.txt"
#Existe el archivo?
if [ -f "$FILE" ]
then
#El directorio existe
canti=`cat cant.txt`
else
#El directorio no existe
echo 1 > cant.txt
canti=`cat cant.txt`
fi
El archivo verificará la existencia de los directorios para generar logs actualizados, en caso
de que no exista el directorio será creado y nombrado statepc
#!/bin/bash
FOLDER=statepc
#Existe la carpeta?
if [ -d "$FOLDER" ]
then
#El directorio existe
var1=`ls statepc | wc -l`
else
#El directorio no existe
mkdir statepc
var1=`ls statepc | wc -l`
fi
#Existen archivos?
if [ $var1 -ge 1 ]
then
#Existen
num=`expr $var1 + 1`;
else
#No existen archivos
num=1;
fi
namef=log$num.txt
#Cargar Log
echo '-----ESTADO DE PC-----' >> statepc/$namef
echo ' ' >> statepc/$namef
date +'FECHA: %D HORA: %H:%M:%S' >> statepc/$namef
echo ' ' >> statepc/$namef
echo 'UPTIME:' >> statepc/$namef
uptime >> statepc/$namef
echo ' ' >> statepc/$namef
echo 'USO DE CPU:' >> statepc/$namef
mpstat >> statepc/$namef
echo ' ' >> statepc/$namef
echo 'USO DE DISCO:' >> statepc/$namef
df -h >> statepc/$namef
echo ' ' >> statepc/$namef
echo 'CONSUMO DE RED:' >> statepc/$namef
route >> statepc/$namef
echo '-----FIN DE LOG-------' >> statepc/$namef
clear
sleep 3
clear
Este archivo contiene las instrucciones de comando para crear el archivo de texto cant.txt el
cual contendrá la información del número de logs para el funcionamiento de mostrar estado
y actualización de logs.
#!/bin/bash
clear
FILE="cant.txt"
#Existe el archivo?
if [ -f "$FILE" ]
then
#El directorio existe
canti=`cat cant.txt`
else
#El directorio no existe
echo 1 > cant.txt
canti=`cat cant.txt`
fi
whiptail --title "Configuracion" \
--msgbox "La cantidad de Logs Configurada para imprimir es: $(cat
cant.txt) " 7 60
whiptail --title "Configuracion" \
--yesno "¿Desea cambiar la cantidad?" 7 50
ans=$?
case $ans in
0)
cant=$(whiptail --title "Configuracion"
\
1)
op=1
;;
esac
clear
15
function Menu_Instalacion(){
echo "3"
salir=0
while [ $salir -eq 0 ]; do
opcion_menu_4=$(whiptail --title "Instalacion" --menu "Seleccione" 12 50 3 \
"1" "Instalar Grafana" \
"2" "Instalar Node-Red" \
"3" "Regresar" 3>&1 1>&2 2>&3)
fi
done
}
;;
El archivo contiene comandos utilizados con el gestor de paquetes de yum para la descarga
e instalación de grafana y el administrador y controlador de servicios para iniciar el servicio
16
de grafana y luego se configuran las reglas de firewall para añadir el puerto al servicio, una
vez realizado se abrirá la ventana de inicio de sesión en navegador predeterminado
#!/bin/bash
El arachivo contiene comandos utilizados con el gestor de paquetes de yum para la descarga
e instalación de nodejs y el administrador de paquetes de node que realizará la instalación
global del paquete node-red
17
#!/bin/bash
echo '-----------------------------------------------'
NODE=node --version
echo''