Contenido del curso
Programación Shell Básica
Script Interactivos
Condicionales
Iteración
Archivos
Empaquetamiento
Funciones
Cierre del curso
Reto 5
Contenido del curso
Reto 5
Reto 5:
Modificar el archivo utilityHost.sh para escribir la información solicitada a un archivo de log cuyo nombre será log<yyyyMMDDHHmmSS> donde yyyy representa el año, MM el mes, DD el día, HH la hora, mm los minutos y SS los segundos
Luis Xavier Perez Miramontes
studentAntonio Rafael González Ferrer
studentMarconi Poveda
company_adminEnzo Venturi
studentMarconi Poveda
company_adminKEVIN FIGUEROA
studentFredy Mendoza Vargas
studentGregorio Andres Martinez Ruiz
studentJose Suarez
studentJohn Florez
studentBerly Danilo Quispe Yana
studentPedro Aburto Gutierrez
studentPaul Manrique
studentMarvin Javier Santos Fernández
studentJaime Escobar
studentIsaac Bryan Ascanoa Roncall
studentJavier Dario Chungana Erira
studentJose Jair Medrano Olmos
studentJuan Camilo Grisales Arias
studentJuan Jose Obando Patiño
studentMiguel Angel Reyes Moreno
studentCesar Eduardo Lanos Camacho
studentCatherine López
studentMario Alexander Vargas Celis
student# !/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
No comprendo el reto :/
UtilityHost.sh lo creamos en las primeras clases Simplemente imprime el valor de unas variables.
#!/bin/bash #Reto 1 option=2 result=4 echo "El valor de option es: $option" echo "El valor de result es: $result"
El objetivo del reto es agarrar esas variables y agregar su valor dentro de un archivo que vas a crear en el script. El nombre de este archivo será: logAÑOMESDIAhoraminutossegundos.txt
Ejemplo:
log20200812211806.txt
Suerte.
Hola, yo lo hice de la siguiente manera:
#!/bin/bash echo "Hey!" read -p "Do you want to register? (0/1): " Pick if [ $Pick == 0 ]; then read -p "Enter your Name: " Name echo "... "; sleep 3 Date=`date +%Y%m%d%H%M%S` echo "Done."; sleep 1 echo "Registered!" echo "Name: $Name | Date: $Date" >> tmp.log else echo "See you!" fi
El programa te preguntará si deseas registrarte, cosa que si la respuesta resulta ser negativa; te mostrará un mensaje de despedida. De lo contrario, si esta es positiva, dara inicio a:
Registered!$Name y $Date a tmp.logCriterio de uso: El uso de >> en vez de > evita que de existir información dentro de tmp.log, esta sea sustituida por otra.
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
Excelente!
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:
Este es el codigo que mas me gusto.!
fecha=`date +%Y%m%d_%H%M%S` echo "Escribiendo a archivo Log.txt" read -p "Escriba la Informacion en el Archivo log: " datos touch log_$fecha.txt echo $datos >> log_$fecha.txt echo "Escribiendo archivo..." sleep 3 echo "Archivo Log Creado!" cat log_$fecha.txt
#!/bin/bash fileLog="" timeZone=$(date +"%Y-%m-%d %H:%M:%S") echo "$timeZone" if [[ -z "$1" ]]; then arg1="Argumento Vacío" else arg1="$1" fi fileLog="Log_${timeZone}.log" echo "file : $fileLog" echo "texto : $arg1" if [[ -n "$fileLog" ]]; then cat <<EOM >>"$fileLog" $arg1 EOM fi
Mi aporte del reto 5:
# ! /bin/bash #desarrollo de reto 5 curso # Autor: Javier option="Nombre" result="Javier" dates=$(date +"%Y%m%d%H%M%S") nameLog="Log-$dates.log" #impresion y escritura log echo -e "El valor de Option es:$option \nEl valor de Result es:$result" >> $nameLog #escritura solo variables en log cat <<EOM >>$nameLog $option $result EOM #listar archivo .log echo -e "archivo .log generado:\n" ls -lh $nameLog #visualizacion archivo log echo -e "\nVisual contenido del .log generado:\n" cat $nameLog
# ! /bin/bash #Merdano Olmos Jose Jair #Reto 5 del curso de programacion en bash #crear un archivo log con el formato YYYY-MM-DD_HH:MM:SS adentro del archivo la informacion del kernel y usuario #Declarar variables fecha=$(date +%Y-%m-%d_%H-%M-%S) usuario=$(whoami) kernel=$(uname -r) #Crear el archivo log echo "Creando el archivo de $usuario con la fecha $fecha" echo "Informacion del kernel: $kernel" >> $fecha.log echo "Informacion del usuario: $usuario" >> $fecha.log cat $fecha.log ```# ! /bin/bash#Merdano Olmos Jose Jair#Reto 5 del curso de programacion en bash#crear un archivo log con el formato YYYY-MM-DD\_HH:MM:SS adentro del archivo la informacion del kernel y usuario#Declarar variablesfecha=$(date +%Y-%m-%d\_%H-%M-%S)usuario=$(whoami)kernel=$(uname -r) \#Crear el archivo log echo "Creando el archivo de $usuario con la fecha $fecha"echo "Informacion del kernel: $kernel" >> $fecha.logecho "Informacion del usuario: $usuario" >> $fecha.log cat $fecha.log
Como lo entendí:
# !/bin/sh # Description: This script will ask for the user's name and age, and then create a log file with the current date and time. Platzi Challenge 5. # Author: JC - @jc # Date: 2025-03-26 echo "What is your name?" read name echo "What is your age?" read age echo -e "\nCreating log file..." # Create a log file with the current date filename=$(date +%Y-%m-%d_%H-%M-%S.log) echo "$(date) - User $name, aged $age years old, logged in." >> $filename echo "Log file: $filename" echo -e "\nLog file created successfully! Please check the log file for details."
UtilityHost.sh:
# !/bin/bash # reto 1 # Autor: JuanObandoDev name="" age="" echo "what's your name?" read name echo "What's your age?" read age echo "Hello $name, enjoy your $age years old" export name export age ./5_challenge.sh
Reto 5:
# !/bin/bash # Modificar el archivo utilityHost.sh para escribir la informcaion solicitada a un archivo de log cuyo nombre será: logyyyyMMDDHHmmSS, donde yyyy representa el año, MM el mes, DD el día, HH la hora, mm los minutos y SS los segundos. # Autor: JuanObandoDev echo "generating log..." fileName="log$(date +%Y%m%d%H%M%S)" sleep 3 touch $fileName.txt echo "Name: $name" >> $fileName.txt echo "Age: $age years old" >> $fileName.txt echo -e "\n$fileName.txt Content:" cat $fileName.txt
\#!/bin/bash \# Prompt user for date and time components echo "Enter the year (yyyy):" read year echo "Enter the month (MM):" read month echo "Enter the day (DD):" read day echo "Enter the hour (HH):" read hour echo "Enter the minutes (mm):" read minutes echo "Enter the seconds (SS):" read seconds \# Validate input to ensure proper formatting (optional) if \[\[ ! $year =~ ^\[0-9]{4}$ || ! $month =~ ^\[0-9]{2}$ || ! $day =~ ^\[0-9]{2}$ || ! $hour =~ ^\[0-9]{2}$ || ! $minutes =~ ^\[0-9]{2}$ || ! $seconds =~ ^\[0-9]{2}$ ]]; then   echo "Invalid input. Please use the correct formats (e.g., yyyy for year, MM for month, etc.)."   exit 1 fi \# Construct the filename filename="log${year}${month}${day}${hour}${minutes}${seconds}.log" \# Create the log file touch "$filename" echo "Log file '$filename' created successfully."
save_log () {
local backup_file="log_$(date +'%Y%m%d_%H%M%S').txt"
echo -e "\nSalvando la informacion en el log"
echo -e "\nAlmacenando la informacion en el log: ">> "$backup_file"
echo -e "\n Almacenando valor de option: "$1>> "$backup_file"
echo -e "\n Almacenando el valor de result: " $2>> "$backup_file"
echo -e "\n Backup completo: $backup_file"
echo -e "\n"
}
#Reto #5
option=1
result=2
echo $option
echo $result
save_log $option $result
Mi 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: Catherine Flores option=$1 result=$2 date=$(date "+%Y-%m-%d-%H-%M-%S") read -p "Ingrese un valor: " option read -p "Ingrese un valor: " result echo "Creacion del Archivo" touch fichero_$date.log echo "Escribir en un archivo" cat <<EOM >>fichero_$date.log $option $result EOM echo "Visualizar el contenido del archivo" cat fichero_$date.log echo "Mover archivo a carpeta" mv fichero_$date.log logs_reto5/ ```*resultado*  ![]()
# ! /bin/bash # Reto 5 # Autor: Mario Celis - https://www.linkedin.com/in/mario-alexander-vargas-celis/ option=1 result=2 echo "La opción es: $option y el resultado es: $result" >> log-`date +%Y-%m-%d-%H-%M-%S`.log