No comprendo el reto 😕
Bienvenida e Introducción
Todo lo que aprenderás para programar en Bash Shell
Componentes de Linux, Tipos de Shell y Comandos de información
Bash scripting
Crear nuestro primer Script
Ejecutar nuestro script con un nombre único
Programación Shell Básica
Declaración de Variables y Alcance en Bash Shell
Tipos de Operadores
Script con Argumentos
Sustitución de Comandos en variables
Debug en Script
Reto 1
Script Interactivos
Capturar información usuario
Expresiones Regulares
Validar información
Paso de parámetros y opciones
Descargar información de Internet
Reto 2
Condicionales
Sentencias If/Else
Reto 3
If Anidados
Expresiones Condicionales
Sentencias Case
Iteración
Arreglos
Sentencia for loop
Sentencia while loop
Loop Anidados
Break y continue
Menú de Opciones
Reto 4
Archivos
Archivos y Directorios
Escribir dentro de archivos
Leer Archivos
Operaciones Archivos
Reto 5
Empaquetamiento
Empaquetamiento TAR, GZIP y PBZIP 2
Respaldo Empaquetado con clave
Transferir información red
Reto 6
Funciones
Crear funciones y Paso de Argumentos
Funciones de instalar y desinstalar postgres
Funciones sacar y restaurar respaldos en postgres
Reto 7
Cierre del curso
Cierre
Modify the utilityHost.sh file to write the requested information to a log file whose name will be log
...
Contributions 77
Questions 0
No comprendo el reto 😕
# !/bin/bash
# Reto 5. Generar un archivo log, escribir dentro de este archivo el usuario, y la fecha de log en formato yyyy_MM_DD_HH_mm_ss
# Autor: Luis Xavier
echo "Generating log file..."
touch log.txt
echo "Registering login..."
user=$USER
date=$(date +%Y_%m_%d__%H:%M:%S)
echo "$user/$date" >> log.txt
sleep 1
echo -e "Login Registered\n"
cat log.txt
Código:
╭─ ~/BashShell master ?8 ···················································· ✔ 21:27:26
╰─ more reto5.sh
#!/bin/bash
#Reto 1
option=2
result=4
echo "El valor de option es: $option" >> log-option-$(date +%Y%m%d%H%M%S).txt
echo "El valor de result es: $result" >> log-result-$(date +%Y%m%d%H%M%S).txt
Resultado:
-rw-r--r-- 1 mapo mapo 25 Aug 12 21:27 log-option-20200812212723.txt
-rw-r--r-- 1 mapo mapo 25 Aug 12 21:27 log-result-20200812212723.txt
Lo que entendí. Crear un archivo llamado Log+Fecha.log y en ese archivo escribir la información del usuario que accedió al script y la fecha en que lo hizo.
#!/bin/bash
# Reto 5
# Autor Jose Suarez.
fecha=`date +%Y%m%d%H%M%S`
usuario=$(logname)
archivo=log-`date +%Y%m%d%H%M%S`.log
#Crear el archivo
touch $archivo
echo -e "\n"
#Agregar información del usuario
echo "Acceso del usuario: $usuario " >> $archivo
echo -e "\n"
#Agrego la fecha
echo "En la Fecha: $fecha " >> $archivo
#Muestro el archivo por 3 segundos
cat $archivo
sleep 3
Done !
Code:
Result:
Mi reto 5
# !/bin/bash
# Reto 1 Utility Host
# Autor: Ricardo Portillo - @spyderp
option=$1
result=$2
# Get the current date and time
date=$(date +"%Y%m%d%H%S")
if ![ -f "log_UtilityHost.txt" ]; then
touch log_UtilityHost.txt
fi
texto="El valor de la variable option es: $option"
echo "Reto 1"
echo $texto
echo "$texto -- $date" >> log_UtilityHost.txt
texto="El valor de la variable result es: $result"
echo $texto
echo "$texto -- $date" >> log_UtilityHost.txt
Mi aporte.
#!/bin/bash
#Reto 5: Creacion de archivo log para cada ejecucion del programa
#Autor: Sergio A. Vargas
rutaAcual=`pwd`
fecha=$(date)
logDate=$(date +"%Y-%m-%d_%H:%M:%S")
echo "Estas en el directorio : $rutaActual"
echo "Esta es la fecha actual $fecha"
echo "Ingrese su nombre: "
read name
echo "Ingrese su edad: "
read age
echo "Te llamas $name y tu edad es $age, fecha de ejecucion $logDate" >> log_$logDate.txt
#!/bin/bash
read -n 1 -erp "Ingrese una opción (0-9) : " option
read -n 15 -erp "Ingrese un resultado: " result
usuario=$USER
fecha=$(date “+%Y/%m/%d”)
hora=$(date “+%H:%M:%S”)
fichero="log.txt"
cabecera="usuario Fecha Hora Option Resultado"
if [[ ! -a $fichero ]]; then
echo “$cabecera” > $fichero
fi
echo “$usuario $fecha $hora $option $result” >> $fichero
#!/bin/bash
# Programa RETO 5 , utilityHost.sh
# Declarar dos variables, option y result, inicializarlas
# Modificación añadiendo usuario y fecha
# Y grabándolo en el archivo log
read -n 1 -erp "Ingrese una opción (0-9) : " option
read -n 15 -erp "Ingrese un resultado: " result
# Separador de fields, <tab>
tab=$(echo -e "\t")
# Usuario activo de sesión
usuario=$USER
# Fecha actual del sistema
fecha=$(date "+%Y/%m/%d")
# Hora actual del sistema
hora=$(date "+%H:%M:%S")
fichero="log.txt"
cabecera="usuario $tab Fecha $tab Hora $tab Option $tab Resultado"
# la opción -a verifica si existe el fichero, ! -a niega la existencia
# si no existe el fichero se crea con la cabecera
if [[ ! -a $fichero ]]; then
echo "$cabecera" > $fichero
fi
# Se procede a añadir >> el registro con todos los datos
echo "$usuario $tab $fecha $tab $hora $tab $option $tab $result" >> $fichero
echo "Se ha registrado en $fichero correctamente"
no entinedo el reto, pero con ayuda de los aportes hice esto
echo "Generating log file..."
touch log.log
echo "Registering login..."
user=$USER
date=$(date +%Y_%m_%d__%H:%M:%S)
echo "$user/ $date" >> log.txt
sleep 1
echo -e "Login Registered\n"
1 # !/bin/bash
2 # Programa de Reto 4: escribir info solicitada en archivo .log cuyo nombre sera log mas la fecha
3 # Autor: Jose Luis Nunez
4
5
6 nombre=$(date +"%Y%m%d%H%M%S")
7 echo "Creacion de nuevo archivo .log con nombre de fecha"
8
9 touch "$nombre.log"
10 echo $1 >> "$nombre.log"
Mi solución al reto:
# !/bin/bash
# Programa para crear un archivo log en donde yyyy representa el año, MM el mes, DD el día, HH la hora, mm los minutos y SS los segundos
# Autor: Santiago Muñoz Ruiz
option1=$1
option2=$2
date=`date +'%Y%m%d%H%M%S'`
logname="log$date.txt"
echo "La opción 1 es: $option1"
La opción 1 es:
echo "El opción 2 es: $option2"
El opción 2 es:
touch "$logname"
echo "$option1" >> $logname
echo "$option2" >> $logname
Tenemos en cuenta si existe o no el fichero log.txt ,
si no existe añadimos una cabecera de campos y,
si ya existe, solo añadimos el usario, fecha y la hora.
1 #!/bin/bash
2 # Autor JRPF - DIC -2022
3 # Programa reto 5
4 # grabar la información de usuario y año, mes, día, hora,
5 # minutos y segundos, en el fichero log.txt
6 #
7 # Añadiendo usuario y fecha a log.txt
8
9 usuario=$USER
10 fecha=$(date +%Y/%m/%d)
11 hora=$(date +%H:%M:%S)
12 fichero="log.txt"
13 if [ ! -f "$fichero" ]; then
14 touch "$fichero"
15 echo -e "\tUsuario\tfecha\t\thora" > $fichero
16 fi
17 echo -e "\t$usuario \t $fecha \t $hora" >> $fichero
# !/bin/bash
# Reto: Modificar el archivo utilityHost.sh para escribir la información solicitada a un archivo de log cuyo nombre será log donde yyyy representa el año, MM el mes, DD el día, HH la hora, mm los minutos y SS los segundos
# creacion del archivo
dt=$(date '+%d_%m_%YT%H_%M_%S')
echo "date is $dt"
fileName="log_$dt.txt"
echo "fileName is $fileName"
touch $fileName
echo "mensaje que se desea imprimir: $1"
echo "$1" > $fileName
#!/bin/bash
#reto1
#autor: Adrian
#declarar dos variables
option=$1
result=$2
#imprimir argumentos de la variable con la fecha y gravarlos en un archivo log.txt
echo -e "\n$option\n$(date)" >> log.txt
echo -e "\n$result\n$(date)" >> log.txt
Mi solución:
Código:
#!/bin/bash
# Challenge 1
# Develop a program called utilityHost.sh, inside it we are going to declare two variables, one called 'option', another called result, we are going to initialize them and print their values.
# Challenge 2
# Modify the utilityHost.sh file to write the requested information to a log file whose name will be log where yyyy represents the year, MM the month, DD the day, HH the hour, mm the minutes and SS the seconds.
option="CODE FORMAT"
result="UTF-8"
echo "The option selected is: $option and the result is: $result" > log.txt
echo $(date '+%y-%m-%d %H:%M:%S') >> log.txt
Terminal:
Mi aporte:
# !/bin/bash
# Reto 5: Modificar el archivo utilityHost.sh para escribir la información solicitada a un archivo de log cuyo nombre será log donde yyyy representa el año, MM el mes, DD el día, HH la hora, mm los minutos y SS los segundos
#Variables
date=`date +%Y%m%d_%H%M%S`
logFile=log_$date.log
option='Reto 5'
result='Bash Shell'
user=$(logname)
#Crear Archivo
echo "Generando log..."
sleep 1
clear
touch $logFile
#Escribiendo información
echo "Terminando el $option con $result." >> $logFile
echo "Realizado por el usuario: $user" >> $logFile
echo "Fecha de creación: `date +%Y-%m-%d`" >> $logFile
#Mostrar Log Creado
echo "------------------------------------------------------"
echo "El log $logFile fué creado exitosamente"
echo "------------------------------------------------------"
echo ""
echo "---------Se guardo la siguiente información-----------"
echo ""
cat $logFile
echo ""
echo "------------------------------------------------------"
sleep 2
#!/bin/bash
#Reto5
#Autor: iGera97
option=0
result=""
while [[ $option -le 0 || $option -gt 3 ]]
do
read -n1 -p "Ingresar una opción entre 1-3: " option
echo -e "\n $option"
done
case $option in
1)
result="Escogiste la opción 1, ganaste un mueble troncoso";;
2)
result="Escogiste la opción 2, ganaste un perrito";;
3)
result="Escogiste la opción 3, perdiste";;
esac
echo $result
echo -e "Crear archivo"
fecha=$(date '+%Y%m%d_%H%M%S')
touch $fecha.log
echo -e "Opción: $option\nResultado: $result" >> $fecha.log
cat $fecha.log
Reto 5
#!/bin/bash
# Reto 5
#Modificar el archivo utilityHost.sh para escribir la información solicitada a un archivo de log
#cuyo nombre será log donde yyyy representa el año, MM el mes, DD el día, HH la hora, mm los minutos y SS los segundos
# Autor: julian lamadrid, jlamadrid, litocruz
#declaracion variables
option=$2
comando=$1
cantidad=$#
echo "Este script recibe 2 parametros, el primero es el comando y el segundo un argumento antecedido por un -."
echo "El resultado sera guardado en un archivo log creado con la fecha actual."
# validacion de cantidad opciones
if [ "$cantidad" -lt 2 ] ; then
echo "uso del script es el siguiente $0 comando -option"
exit
fi
# validacion del guion delante argumento
echo "$option" | [ ! $(grep "^-") ] && echo "Debe ingresar el argumento con guion(-) delante; exit 1"
file="log-$(date +%Y%m%d%H%m%S).log"
echo -e "Log de Reto 5\n" >> $file
echo "$(date +%Y%m%d%H%m%S) --- comando: $comando opcion: $option" >> $file
echo -e "Resultado:\n $($comando $option)" >> $file
echo "Nombre archivo: $file"
#!/bin/bash
read -p "Escriba “S o s” para registrarse: " option
Val_selecc_option=’^S|s$’
if [[ $option =~ $Val_selecc_option ]]; then
read -p "Ingrese sus Nombres: " Name
echo "… "; sleep 1
Date=`date +%Y%m%d%H%M%S`
echo "Done."; sleep 1
echo "Registered!"
echo "Date: $Date | Name: $Name" >> tmp.log
else
echo "No se realizan acciones!"
fi
Comparto mi resolución
#!/bin/bash
#Reto 5
touch log.txt
echo "Registering login"
user=$USER
date=$(date +%Y_%m_%d__%H:%M:%S)
echo "$user/$date" >> log.txt
echo -e "Daros guardados correctamente"
Mi ejercicio
echo "REGISTRO DE HOST LOGS" | lolcat
touch log.txt
chmod -x log.txt
year=""; month=""; day=""; hours=""; minutes=""; seconds=""
read -p "Inserte un año en formato yyyy: " year
read -p "Inserte una mes en formato mm: " month
read -p "Inserte una dia en formato dd: " day
read -p "Inserte una hora en formato hh: " hours
read -p "Inserte una minutos en formato mm: " minutes
read -p "Inserte una segundos en formato ss: " seconds
verificador=0
if [ $year -gt 2022 ]; then
echo "el año no puede ser superior a 2022" | lolcat
verificador=$(( verificador + 1 ))
else
echo "registrando año..." | lolcat
fi
if [ $month -gt 12 ]; then
echo "el numero de mes no puede ser superior a 12" | lolcat
verificador=$(( verificador + 1 ))
else
echo "registrando mes..." | lolcat
fi
if [ ${#day} -gt 2 ] || [ ${#day} -lt 2 ]; then
echo "la longitud de dia debe ser 2 caracteres" | lolcat
verificador=$(( verificador + 1 ))
else
echo "registrando dia..." | lolcat
fi
if [ $verificador -ge 1 ]; then
echo "No se pudo guardar la informacion"
else
echo "[ $day $month $year - $hours:$minutes:$seconds ]" >> log.txt
echo "informacion guardada en archivo: log.txt" | lolcat
fi
Mi reto:
#!/bin/bash
#Escribir archivo log yyyyMMDDHHmmSS
#Autor: Damián Lores -@Drami24
option=2
result=4
fecha=$(date +%Y%m%d%H%M%S)
echo "Escribir fecha en log.txt"
echo "Option: $option, Result: $result" >> log$fecha.txt
#!/bin/bash
#Programa para insertar en el archivo log.txt YYYYMMDD, HHmmss
#Autro: Jorge Cl
echo "Reto 5 Creación de archivo log"
touch log.txt
cat <<EOM> log.txt
$(date +%Y%m%d-%H:%M:%S)
EOM
echo -ne '##### (33%)\r'
sleep 1
echo -ne '############# (66%)\r'
sleep 1
echo -ne '####################### (100%)\r'
echo -ne '\n'
echo -e "\nCREADO CORRECTAMENTE"
echo "Valor ingresado $(cat log.txt)"
# !/bin/bash
#RETO: Modificar el archivo utilityHost.sh para escribir la información solicitada a un archivo de log cuyo nombre será log donde yyyy representa el año, MM el mes, DD el día, HH la hora, mm los minutos y SS los segundos.
#Autor: Nicolás Rodríguez - @chino.rodgz
echo "RETO 5: Login"
read -e -p "Usuario: " user
read -s -p "Contraseña: " password
date=`date +"%Y-%m-%d"`
hour=`date +"%T"`
echo "Usuario: $user ; Fecha: $date ; Hour: $hour" >> log.txt
Resultado en log.txt
Reto 5
# !/bin/bash
# Reto 5:
# Programa que guarda info en un archivo llamado log
name=""
birthday=""
email=""
logPath="$HOME/shellCourse/log.txt"
echo "Vamos a guardar tus datos"
read -p "Introduce tu nombre: " name
read -p "Introduce tu fecha de cumpleaños[dd/mm/yyyy]: " birthday
read -p "Introduce tu email: " email
if [ -d $logPath ]; then
cat <<EOM>>$logPath
Nomre: $name
Cumpleaños: $birthday
Email: $email
EOM
else
touch "log.txt"
cat <<EOM>>$logPath
Nomre: $name
Cumpleaños: $birthday
Email: $email
EOM
fi
Reto # 5 😃
#!/bin/bash
# RETO # 5
# Modificar el archivo utilityHost.sh para escribir la información solicitada,
# a un archivo de log cuyo nombre será log donde yyyy representa el año,
# MM el mes, DD el día, HH la hora, mm los minutos y SS los segundos
# Autor: steven - correo@corrreo
#Variables
OPTION=0
CLEAN=""
FLAG=1
# Menú del script
MENU=("Comando ps aux"\
"Comando df -th"\
"Salir")
# Opciones del script
OPTIONS=("ps aux"\
"sudo df -Th"\
"exit 0")
while :
do
# Limpiar la pantalla
if [[ $FLAG == 1 ]];then
clear
fi
FLAG=0
# Desplegar el menú de opciones
echo "-------------------------------------------"
echo " RETO # 5 "
echo "-------------------------------------------"
echo " MENÚ PRINCIPAL "
echo "-------------------------------------------"
LENGTH_ARRAY=${#MENU[@]}
for ((item=0;item<=$LENGTH_ARRAY-1;item++))
do
count=$((item + 1))
echo "$count. ${MENU[item]}"
done
# Leer la opción del usuario.
read -n 1 -p "Ingrese una opción del menú > " OPTION
echo -e "\n"
REAL_OPTION=$(($OPTION - 1))
# Imprimir la opción que selecciono el usuario.
echo "${MENU[$REAL_OPTION]}"
sleep 1
COMMAND=${OPTIONS[$REAL_OPTION]}
eval $COMMAND
echo -e "\n"
# Leer la decisión del usuario.
read -n 2 -p "Deseas guadar los datos en un log [SI|NO] > " SAVE
PARSE_LOWER_CASE_SAVE="${SAVE,,}"
if [ $PARSE_LOWER_CASE_SAVE == "si" ]; then
DATE=$(date +"%Y_%m_%d_%H_%M_%S")
NAME_FILE="log_$DATE.log"
eval $COMMAND >> $NAME_FILE
echo -e "\n"
echo "Archivo creado --> $NAME_FILE"
fi
echo -e "\n"
# Leer la decisión del usuario.
read -n 2 -p "Deseas limpiar la consola [SI|NO] > " CLEAN
echo -e "\n"
sleep 1
PARSE_LOWER_CASE="${CLEAN,,}"
if [ $PARSE_LOWER_CASE == "si" ]; then
FLAG=1
fi
done
Script reto5_sh
# !/bin/bash
# Programa para guardar log de nuevo usuario
# Usar source para poder importar variables
source ./utilityHost.sh
currentDate=`date +%Y_%m_%dT%H:%M:%S`
fileName="log_$currentDate"
cat <<EOM >$fileName
# Usuario registrado
Date: $currentDate
Name User: $name
Edad User: $age
EOM
Script utilityHost_sh
# !/bin/bash
# Programa para guardar log de nuevo usuario
echo "Hola, cuál es su nombre?"
read name
echo "Qué edad tienes?"
read age
echo "Hola $name, nos complace tener una persona de $age años"
export name;
export age;
Comparto mi código 😃
# ! bin/bash
# Reto No. 5
archivo=log-`date +%Y%m%d%H%M%S`.txt
read -p "Welcome, ¿What is your firstname?: " FIRSTNAME
read -p "And your lastname?: " LASTNAME
touch $archivo
echo "Hello. Your name is $FIRSTNAME $LASTNAME :)" >> $archivo
echo "Se ha creado un nuevo archivo llamado $archivo"
Asi entendi el reto, espero este bien
#--------------------------------------
#Reto5 UtilityHost
nomFile=log$(date +"%Y%m%d%H%M%S").txt
pathLogs=“logUtil”
echo "Leyendo UtilityHost…"
catContent=cat utilityHost.sh
log
if [ -d $pathLogs ]; then
echo "El directorio $pathLogs existe"
else
echo -e "\nCreando Carpeta…"
mkdir -m 755 $pathLogs
fi
echo -e "\nEntrando a la Carpeta…"
cd $pathLogs
echo -e "\nGenerando Respaldo…"
touch $nomFile
echo -e "\nEscribiendo Archivo…"
echo $catContent >> $nomFile
Aqui esta mi reto: Basicamente utilice el mismo codigo que utilice en el Reto#3. Lo unico que cambia son las lineas de codigo que estan relacionadas con el Reto#5. Al principio creo un archivo de nombre log_fecha_hora.txt y lo muevo a un directorio de nombre logs_reto5/ A medida de que el usuario se mueve e interactua con el Menu de Opciones simplemente estoy agregando registros sobre las operaciones que realiza y las voy escribiendo en el archivo de Log creado al principio.
# ! /bin/bash
# Programa para cumplir con el reto#3
#Arnoldo Alvarez
opcion=""
numA=0
numB=0
numC=0
telRegex= '^\(?([0-9]{3})\)?([0-9]{3})[.]?([0-9]{4})$' #Solo acepta el formato telefonico (xxx)xxx.xxxx Ej:(706)612.4602
telRegex2='^\([0-9]\{3\}\)\([0-9]\{3\}\)\([0-9]*\)/(\1) \2 . \3/$'
pathArchivo=""
aritmetica=""
funcion=""
phone=""
resp=""
FILE=log.txt
DATE=`date +%y%m%d`
TIME=`date +%H%M%S`
#Se crea un archivo .log con fecha y hora y se mueve a un directorio de logs_reto5
NEWFILE=${FILE%.*}_`date +%Y%m%d`_`date +%H%M%S`.${FILE#*.}
touch $NEWFILE
mv $NEWFILE logs_reto5/
#echo "El archivo $NEWFILE fue creado con exito"
while :
do
clear
echo "archivo: $NEWFILE"
echo "Las opciones son las siguientes\n
1.- Para Saber como evitar CoronaVirus
2.- Realizar funciones numericas
3.- Para verificar formato de numero telefonico
4.- Para verificar un directorio
5.- Ver contenido de un Archivo
6.- salir"
echo -e "\n"
read -n1 -p "Introduzca su Opcion: " opcion
case $opcion in
"1") echo -e "\nLo que debes hacer es lo siguiente:
a) Lavarse las manos frecuentemente.
b) Toser o estornudar al interior de tu codo.
c) No tocarse la cara.
d) Mantener cierta distancia social.
e) Quedarse voluntariamente en casa."
echo "$DATE-$TIME --- Instrucciones Consultadas" >> logs_reto5/$NEWFILE
sleep 5
;;
"2") read -p "Introduzca el numero A: " numA
read -p "Introduzca el numero B: " numB
echo "Funciones Aritmeticas disponibles
1.- Sumar
2.- Multiplicar
3.- Dividir"
echo -e "\n"
read -p "Escoja la funcion Aritmetica: " aritmetica
case $aritmetica in
"1") funcion="suma"
numC=$((numA + numB));;
"2") funcion="Multiplicacion"
numC=$((numA * numB));;
"3") funcion="Division"
numC=$((numA / numB));;
*) funcion="Funcion No definida"
echo "Opcion incorrecta";;
esac
echo "Resultado Matematico de la $funcion: $numC "
echo "$DATE-$TIME --- Usuario realiza funcion matematica $funcion:$numC" >> logs_reto5/$NEWFILE
sleep 5
;;
"3") echo -e "\n"
echo "$DATE-$TIME --- Usuario escoge chequear formato de numero telefonico" >> logs_reto5/$NEWFILE
read -p "Ingrese numero telefonico: " telefono
if [[ $telefono =~ $telRegex2 ]]; then
echo "Formato correcto dentro de los EEUU"
else
phone=$telefono
plainPhone=$(echo $phone | sed "s/[()-.]//g")
echo "Formato Incorrecto dentro de los EEUU"
read -n1 -p "Convertir al formato (123)456.7890 s/n: " resp
echo -e "\n"
if [ $resp = "s" ]; then
formatedPhone2=$(echo $plainPhone | sed "s/\([0-9]\{3\}\)\([0-9]\{3\}\)\([0-9]*\)/(\1) \2 . \3/")
echo "Numero convertido: $formatedPhone2 "
echo "$DATE-$TIME --- Usuario cambia formato del Numero Telefonico $telefono" >> logs_reto5/$NEWFILE
else
echo "$DATE-$TIME --- Usuario responde NO para cambiar formato de $telefono" >> logs_reto5/$NEWFILE
echo "Volviendo al Menu Principal..."
fi
fi
sleep 5
;;
"4") echo -e "\n"
read -p "Ingrese la ruta de un directorio: " dirPath
if [[ -d $dirPath ]]; then
echo "$DATE-$TIME --- Usuario consulta satisfactoriamente el directorio $dirPath" >> logs_reto5/$NEWFILE
echo "El directorio $dirPath SI Existe"
else
echo "El directorio NO Existe o NO es un directorio"
echo "$DATE-$TIME --- Usuario No encuentra $dirPath" >> logs_reto5/$NEWFILE
fi
sleep 5
;;
"5")echo -e "\n"
read -p "Ingrese la ruta del archivo: " filePath
if [[ -e $filePath ]]; then
echo "$DATE-$TIME --- Usuario consulta el archivo $filePath" >> logs_reto5/$NEWFILE
cat $filePath
else
echo "No se encuentra el archivo o Nombre de archivo Incorrecto"
echo "$DATE-$TIME --- Usuario No encuentra $filePath" >> logs_reto5/$NEWFILE
fi
sleep 6
;;
"6") echo -e "\n"
echo -e "Saliendo..."
echo "$DATE-$TIME --- Usuario sale de la aplicacion" >> logs_reto5/$NEWFILE
exit 0
;;
*) echo "Opcion Incorrecta, Lo sentimos"
esac
done
genial
touch utilityHost.sh | date >> utilityHost.sh
#! /bin/bash option="" while : do #Limpieza de pantalla clear echo "_______________________" echo " Menu de opciones " echo "_______________________" echo -e "\n" echo "1. Instalar Postgres" echo "2. Desinstalar Postgres" echo "3. Crear un Backup" echo "4. Restaurar Backup" echo "5. Salir" echo -e "\n" read -n1 -p "Elija una Opcion :" option echo -e "\n" case $option in 1) echo "Instalando Postgres...." if [ -f ~/logs/instalandoPostgres.log ]; then echo "El fichero ya existe...>> Agregando log " echo "$(date '+%F %H %M %S') $(whoami)" >> ~/logs/instalandoPostgres.log sleep 3 else echo "el Fichero no existe > creando fichero " echo "$(date '+%F %H %M %S') $(whoami)" > ~/logs/instalandoPostgres.log sleep 3 fi ;; 2) echo "Desinstalando Postgres" date '+%F %H %M %S' > ~/logs/DesinstalandoPosgtres.log sleep 3 ;; 3) echo "Creando respaldo " date '+%F %H %M %S'> ~/logs/SacarRespaldo.log sleep 3 ;; 4) echo "Restaurando Backup " date '+%F %H %M %S' > ~/logs/RestaurandoRespaldo.log sleep 3 ;; 5) echo "Saliendo " exit 0 ;; esac done
! /bin/bash
op=0
flag=0
while :
do
if [ $flag == 0 ]; then
for ((i=0;i<4;i++))
do
clear
echo "█ █ █ █ █ █ █ █ █ █ █ █ █ █"
echo " █ █ CARGANDO █ █ "
echo "█ █ PROGRAMA █ █"
echo " █ █ █ █ █ █ █ █ █ █ █ █ █ "
sleep 0.4
clear
echo " █ █ █ █ █ █ █ █ █ █ █ █ █ "
echo "█ █ CARGANDO █ █"
echo " █ █ PROGRAMA █ █ "
echo "█ █ █ █ █ █ █ █ █ █ █ █ █ █"
sleep 0.4
clear
done
echo "Acción : YYYY/MM/DD - HH:mm -> usuario" >> log.txt
flag=1
else
clear
echo "████████████████████████████████████████"
echo "█ █ █ █ █ █ MENU PRINCIPAL █ █ █ █ █ █"
echo "████████████████████████████████████████"
echo "█1. Instlar Postgres █"
echo "█2. Desintalar Postgres █"
echo "█3. Sacar un respaldo █"
echo "█4. Restaurar respaldo █"
echo "█5. Salir █"
echo "████████████████████████████████████████"
echo ""
read -n1 -p "Ingrese una opcion [1-5]: " op
echo -e "\n"
case $op in
1)
#mensaje de la accion
clear
echo " Instalando ."
sleep 0.5
clear
echo " Instalando .."
sleep 0.5
clear
echo " Instalando ..."
sleep 0.5
clear
#escribiendo informacion en log
echo "Instalación : $(date +'%Y/%m/%d - %H:%M') -> $(whoami)" >> log.txt
;;
2)
#mensaje de la accion
clear
echo " Desinstalando ."
sleep 0.5
clear
echo " Desinstalando .."
sleep 0.5
clear
echo " Desinstalando ..."
sleep 0.5
clear
#escribiendo informacion en log
echo "Desintalación : $(date +'%Y/%m/%d - %H:%M') -> $(whoami)" >> log.txt
;;
3)
#mensaje de la accion
clear
echo " Respaldando ."
sleep 0.5
clear
echo " Respaldando .."
sleep 0.5
clear
echo " Respaldando ..."
sleep 0.5
clear
#escribiendo informacion en log
echo "Respaldando : $(date +'%Y/%m/%d - %H:%M') -> $(whoami)" >> log.txt
;;
4)
#mensaje de la accion
clear
echo " Restaurando ."
sleep 0.5
clear
echo " Restaurando .."
sleep 0.5
clear
echo " Restaurando ..."
sleep 0.5
clear
#escribiendo informacion en log
echo "Restaurando : $(date +'%Y/%m/%d - %H:%M') -> $(whoami)" >> log.txt
;;
5)
echo " Hasta Luego"
sleep 2
break;
;;
esac
fi
done```
DONE
entendi el reto cuando llegue al reto 6
1 #! /bin/bash
2
3 option=0
4 ini=0
5
6 while :
7 do
8 if [ $ini == 0 ]; then
9 for ((i=0;i<3;i++))
10 do
11 clear
12 echo"███████████████████████████"
13 echo"███████▀▀▀░░░░░░░▀▀▀███████"
14 echo"████▀░░░░░░░░░░░░░░░░░▀████"
15 echo"███│░░░░░░░░░░░░░░░░░░░│███"
16 echo"██▌│░░░░░░░░░░░░░░░░░░░│▐██"
17 echo"██░└┐░░░░░░░░░░░░░░░░░┌┘░██"
18 echo"██░░└┐░░░░░░░░░░░░░░░┌┘░░██"
19 echo"██░░┌┘ ░░░░░ └┐░░██"
20 echo"██▌░│ ░░░ │░▐██"
21 echo"███░│ ░░ ░░ │░███"
22 echo"██▀─┘░░░░░░░ ░░░░░░░└─▀██"
23 echo"██▄░░░ ░░ ░░ ░░░▄██"
24 echo"████▄─┘ ░░░░░░░ └─▄████"
25 echo"█████░░ ─┬┬┬┬┬┬┬─ ░░█████"
26 echo"████▌░░░ ┬┼┼┼┼┼┼┼ ░░░▐████"
27 echo"█████▄░░░└┴┴┴┴┴┴┴┘░░░▄█████"
28 echo"███████▄░░░░░░░░░░░▄███████"
29 echo"██████████▄▄▄▄▄▄▄██████████"
30 echo"███████████████████████████"
31 echo"LOADING...LOADING...LOADING"
32 sleep 0.3
33 clear
34 echo"███████████████████████████"
35 echo"███████▀▀▀░░░░░░░▀▀▀███████"
36 echo"████▀░░░░░░░░░░░░░░░░░▀████"
37 echo"███│░░░░░░░░░░░░░░░░░░░│███"
38 echo"██▌│░░░░░░░░░░░░░░░░░░░│▐██"
39 echo"██░└┐░░░░░░░░░░░░░░░░░┌┘░██"
40 echo"██░░└┐░░░░░░░░░░░░░░░┌┘░░██"
41 echo"██░░┌┘▄▄▄▄▄░░░░░▄▄▄▄▄└┐░░██"
42 echo"██▌░│██████▌░░░▐██████│░▐██"
43 echo"███░│▐███▀▀░░▄░░▀▀███▌│░███"
44 echo"██▀─┘░░░░░░░▐█▌░░░░░░░└─▀██"
45 echo"██▄░░░▄▄▄▓░░▀█▀░░▓▄▄▄░░░▄██"
46 echo"████▄─┘██▌░░░░░░░▐██└─▄████"
47 echo"█████░░▐█─┬┬┬┬┬┬┬─█▌░░█████"
48 echo"████▌░░░▀┬┼┼┼┼┼┼┼┬▀░░░▐████"
49 echo"█████▄░░░└┴┴┴┴┴┴┴┘░░░▄█████"
50 echo"███████▄░░░░░░░░░░░▄███████"
51 echo"██████████▄▄▄▄▄▄▄██████████"
52 echo"███████████████████████████"
53 echo".....LOADING.....LOADING..."
54 sleep 0.3
55 clear
56 done
57 ini=1
58 else
59 clear
60 echo"_________________________________________"
61 echo" MENU PRINCIPAL "
62 echo"_________________________________________"
63 echo "1. Instlar Postgres"
64 echo "2. Desintalar Postgres"
65 echo "3. Sacar un respaldo"
66 echo "4. Restaurar respaldo"
67 echo "5. Salir"
68
69 read -n1 -p "Ingrese una opcion [1-8]: " option
70
71 echo-e"\n\n"
72
73 case $option in
74 1)
75 echo -e "Instalando"
76 echo "Instalacion completada | usuario $(whoami) | $(date +' %d/%m/%Y %H:%M')" >> ./log_instalacion.txt
77 sleep 2
78 ;;
79 2)
80 echo "Desintalando"
81 echo "Desinstalacion completada | usuario $(whoami) | $(date +'%d/%m/%Y %H:%M')" >> ./log_desinstalacion.txt
82 sleep 2
83 ;;
84 3)
85 echo "Respaldando"
86 echo "respaldo completado | usuario $(whoami) | $(date +'%d/ %m/%Y %H:%M')" >> ./log_respaldo.txt
87 sleep 2
88 ;;
89 4)
90 echo "Restaurando"
91 echo "restauracion completada | usuario $(whoami) | $(date + '%d/%m/%Y %H:%M')" >> ./log_restauracion.txt
92 sleep 2
93 ;;
94 5)
95 echo "Saliendo"
96 echo "usuario $(whoami) salio del sistema | $(date +'%d/%m/% Y %H:%M')" >> ./log_usuario.txt
97 exit 0
98 ;;
99 esac
100 fi
101 done
<code>
#!/bin/bash
##Modificar archivo utiliHost.sh para escribir info en un log cuto nombre sera log
#donde yyyy año MM mes DD dia HH hora mm munitos SS segundos
#Autor: chichocoria
fechahora=$(date +%Y-%m-%d_%H%M%S)
touch prelog.log
option="Eligió la opcion correcta"
result="El resultado va a /dev/null"
echo $option >> prelog.log
echo $result >> prelog.log
echo -e "\nMostar los datos en el archivo .log"
cat prelog.log
##renombra archiv prelog.log con la fechahora
mv prelog.log $fechahora.log
echo -e "\nLista para mostrar el archivo log"
ls -lah | grep *.log
#!/bin/bash
# Programa para resolver el reto 5
# Autor: Juan Pablo @JPJimenezE
option=1
result="Resultado de la opción 1"
logFile=reto5."$(date +%Y%m%d_%H%M%S)".log
echo "La opcion es: $option" > $logFile
echo -e "El resultado es: $result" > $logFile
# Comprobar la escritura en el log
echo -e "\n# Contenido del archivo de log: $logFile"
cat $logFile
#!/bin/bash
option="VariableOption"
result="VariableResult"
fecha=$(date +"%F_%H")
echo "El valor de option: $option" > logOption_$fecha.txt
echo "El valor de result: $result" > logResult_$fecha.txt
Reto 5
#!/bin/bash
option="primer reto"
result="en Platzi"
salida="Este es mi $option $result !!"
echo $salida >> $(date +"%Y_%M_%d_%h_%m_%s").log
Reto
#!/bin/bash
#Reto
if [ $# -ne 1 ]; then
echo "Ingrese solo un parametro de observación entre comillas para el log"
exit
fi
echo $1 >> $(date +%Y%m%d%H%M%S).log
#!/bin/bash
#Programa realizada para el Reto 5 del curso de programación en Bash.
#Crea un archivo con el formato pedido y escribe en él el contenido de las variables option y result
option="Dentro de tu ciudad existe otra ciudad"
result="que solo él conoce"
touch $(date +"%Y_%M_%d_%h_%m_%s").log
echo $option >> $(date +"%Y_%M_%d_%h_%m_%s").log
echo $result >> $(date +"%Y_%M_%d_%h_%m_%s").log
# !/bin/bash
# Programa que declara dos variables e imprime su resultado
option=5
result="Hello world"
echo "El resultado del programa es Option: $option y Result: $result"
touch $(date +"%Y_%M_%d_%h_%m_%s").log
echo $option >> $(date +"%Y_%M_%d_%h_%m_%s").log
echo $result >> $(date +"%Y_%M_%d_%h_%m_%s").log
#!/bin/bash
date=date +%Y%m%d%H%M%S
opcion=""
log="log-$date.log"
echo -e "1)Procesos Actuales"
echo -e "2)Memoria Disponible"
echo -e "3)Espacio en Disco"
echo -e "4)Información de Red"
echo -e "5)Variables de Entorno Configuradas"
echo -e "6)Información Programa"
echo -e “7)Backup información”
read -n1 -p “Ingrese una opción:” opcion
echo “”
case $opcion in
1) ps aux > ps-$log && cat $PWD/$log ;;
2) free > mem-$log && cat $PWD/$log;;
3) df -h > disk-$log && cat $PWD/$log ;;
4) ip a > net-$log && cat $PWD/$log ;;
5) env > env-$log && cat $PWD/$log ;;
6) read -p “Indique un programa: " pg
echo”"
whereis $pg > pg-$log && cat $PWD/$log
;;
7) read -p “indique ruta o archivo a respaldar:” ruta
tar -zcvf backup-$date-.tar.gz $ruta > back-$log && cat $PWD/*$log
;;
*)
echo “opcion no valida”
;;
esac
No entendi el reto pero lo que hice fue crear un archivo con nombre “log.log” y cada que se ejecuta el código escribe en dicho archivo quien accedió y a que hora fue, además de la opción de escribir un mensaje extra.
# !/bin/bash
# Reto 5: crear archivo log
# Autor: Adan Galicia
usuario=$(logname)
fecha=$(date +"%Y-%m-%d %H:%M:%S")
archivo=~/log.log
if [ -f $archivo ]; then
echo -e "\nAccedió el usuario: $usuario el día $fecha:\n\n Mensaje:" >> $archivo
cat <<EOM >> $archivo
$1
EOM
else
touch $archivo
echo -e "Accedió el usuario: $usuario el día $fecha:\n\n Mensaje:" >> $archivo
cat <<EOM >> $archivo
$1
EOM
fi
Listo
Al ver el reto 6 pude entender mas o menos a lo que este reto se refiere.
Mi script crea un archivo de registro en el momento en el que se ejecuta y adjunta al registro cada opción que se seleccione del menu junto con la hora, minutos y segundos en el que fue ejecutada la instrucción; es importante aclarar que las comillas dobles son necesarias para agrupar el comando para pasar la salida del mismo al archivo respetando los saltos de linea: echo "$(command)" >> file
#!/bin/bash
option=0
entries=("Procesos Actuales" "Memoria Disponible" "Espacio en Disco" "Informacion de Red" "Variables de Entorno Configuradas" "Informacion Programa" "Backup Informacion" "Salir")
logFile="log-$(date +%Y%m%d-%H%M%S).log"
echo -e "Inicio del registro\n$(date)" >> $logFile
while :; do
clear && echo -e "\t\e[1;33mMENU\e[0m"
for i in ${!entries[@]}; do
echo -e "\e[1;32m$((i+1)). ${entries[$i]}\e[0m"
done
read -p "Ingrese una opcion y presione ENTER [1-8]> " option
case $option in
1) clear; echo -e "\n$option. ${entries[((option-1))]}\t$(date +%X)" >> $logFile
echo "$(wc -l <<< $(ps axch -o cmd))" >> $logFile
echo && read -sp "Presione ENTER para volver al menu..."
;;
2) clear; echo -e "\n$option. ${entries[((option-1))]}\t$(date +%X)" >> $logFile
echo "$(free -h | awk 'FNR == 2 {print "Memoria Libre: "$3"\nMemoria Disponible: "$6}')" >> $logFile
echo && read -sp "Presione ENTER para volver al menu..."
;;
3) clear; echo -e "\n$option. ${entries[((option-1))]}\t$(date +%X)" >> $logFile
echo "$(df -h /home /)" >> $logFile
echo && read -sp "Presione ENTER para volver al menu..."
;;
4) clear; echo -e "\n$option. ${entries[((option-1))]}\t$(date +%X)" >> $logFile
echo "$(ip -4 route ls | grep default)" >> $logFile
echo && read -sp "Presione ENTER para volver al menu..."
;;
5) clear; echo -e "\n$option. ${entries[((option-1))]}\t$(date +%X)" >> $logFile
echo "$(printenv)" >> $logFile
echo && read -sp "Presione ENTER para volver al menu..."
;;
6) clear; echo -e "\n$option. ${entries[((option-1))]}\t$(date +%X)" >> $logFile
echo "$(bash --version)" >> $logFile
echo && read -sp "Presione ENTER para volver al menu..."
;;
7) clear; echo -e "\n$option. ${entries[((option-1))]}\t$(date +%X)" >> $logFile
echo -e "\e[1m\e[31mH\e[32mE\e[33mL\e[34mL\e[35mO\e[0m" >> $logFile
echo && read -sp "Presione ENTER para volver al menu..."
;;
8) echo "ADIOS..." && sleep 1;
echo -e "\nFin del registro...\n$(date)" >> $logFile
clear && break
;;
esac
done
echo "You left!"
exit 0
#!/bin/bash
# Challenge #1: Creating variables and·printing·their·values on a log file with the following format YYYYmmddHHMMSS.log
option="Holmes"
result=30
fileName=`date +%Y%m%d%H%M%S`
echo "Option: $option, Result: $result" >> "$fileName.log"
MI RETO:
cp utilityHost.sh RETO5.sh
vim RETO5.sh
nombre="“
result=”“
fecha=”"
read -p “Ingresar NOMBRE Usuario:” nombre
read -p “Ingrese nombre backup:” result
echo -e "\nNombre Usuario: $nombre "
echo -e “\nNombre del Backup es: $result”
#Crearemos el archivo “.log” llenando los datos con:
#YYYY_MM_DD_HH_mm_ss
touch $(date +"%Y_%m_%d_%H_%M_%S").log
fecha=$(date +"%A-%d-%B-%Y-%k-%M-%S")
echo $nombre >> $(date +"%Y_%m_%d_%H_%M_%S").log
echo $result >> $(date +"%Y_%m_%d_%H_%M_%S").log
echo $fecha >> $(date +"%Y_%m_%d_%H_%M_%S").log
Mi reto:
# ! /bin/bash
# Reto 1:
# Desarrollar un programa llamado utilityHost.sh, dentro de él vamos a declarar dos variables una llamada option, otra llamada result, vamos a inicializarles e imprimir sus valores.
# Author: Francisco Llanquipichun - https://francisco.llanquipichun.cl
option=1
result=2
echo "Valores de variables:"
echo "- option: $option"
echo "- result: $result"
#Reto 5: crea Log
date=$(date '+%Y%m%d%H%M%S')
touch "$date.log"
echo "-option: $option" >> "$date.log"
echo "-result: $option" >> "$date.log"
Dejo una explicación mas detallada de lo que entendí que pide el reto 5 gracias a los comentarios.
PD: Para saber como colocar la fecha en meses, días y horas , revisar con el comando man date ahí les saldrá los flags a usar (%m, %d, etc).
#!/bin/bash
#Reto5.sh
#this script saves the data you type in a log file
#Variables
name=""
age=0
date=`date +%Y%m%d%H%M%S`
#the script captures the value for defined variables
read -p "Type your name: " name
read -p "Type your age: " age
#the scrip wirtes the information in a file with using the forma date +%Y%m%d%H%M%S
echo "name: $name" >> $date.log
echo "age $age" >> $date.log
#showing the file name
echo "your file is $date.log"
#showing the file content
echo "your file content is:"
while IFS= read line
do
echo "$line"
done < $date.log
# !bin/bash
# Modificar el archivo utilityHost.sh para escribir la información solicitada a un archivo de log cuyo nombre será log donde
# yyyy representa el año, MM el mes, DD el día, HH la hora, mm los minutos y SS los segundos
# Autor: Erick Jiménez - @erjimrio
echo -e "\nRETO 5"
name=""
lastName=""
secondLastName=""
age=""
address=""
phone=""
cellphone=""
date=`date +%Y%m%d%H%M%S`
echo -e
echo "Por favor, siga las siguientes intrucciones:"
echo -e
read -p "Digite su nombre o nombres (Sin apellidos): " name
read -p "Digite su apellido paterno: " lastName
read -p "Digite su apellido materno: " secondLastName
read -p "Digite su edad en anios: " age
read -p "Digite su direccion: " address
read -n10 -p "Digite su numero telefonico (10 digitos): " phone
echo -e
read -n10 -p "Digite su numero celular (10 digitos): " cellphone
echo -e "\n"
cat << EOM >> log$fecha.log
Informacion ingresada
Nombre: $name
Apellido paterno: $lastName
Apellido materno: $secondLastName
Edad: $age anios
Direccion: $address
Telefono: $phone
Celular: $cellphone
EOM
echo "Informacion guardada en el archivo log"
Código bash que escribe un registro “log” con el “usuario y la fecha” en el archivo “.utilityHost.sh”
<code>
#!/bin/bash
#Reto 5 Platzi
#JdavilaR
usuario=" "
archivo="utilityHost.sh"
clear
echo "________________________"
echo "|Acceso a la plataforma|"
echo "________________________"
read -p "cual es el nombre de tu usuario" usuario
echo "$usuario"
echo "el Usuario $usuario el día $(date +%d) del mes $(date +%m) del año $(date +%Y) a las $(date +%H) horas y $(date +%M)Minutos $(date +%S)segundos se firmo en nuestro sistema" >> $archivo
cat utilityHost.sh
~
#!/bin/bash
#Declarar 2 variables e imprimir sus resultados
option=`uname -a`
result=$(date)
fecha=`date +%Y%m%d_%H%M%S`
echo -e "$result \n$option" > log_$fecha.txt
cat log_$fecha.txt
Want to see more contributions, questions and answers from the community?