
Proyecto de Linux Fundamentals
Docente: Bryan Vargas
Alumno: Renzo Salazar
Desarrollo de la práctica calificada.
1. Asegúrese de que existen directorios para cada tienda con los nombres: “Tienda1”, “Tienda2”, y “Tienda3” dentro del directorio ‘/home/usuario/ventas’, preferentemente usar variables para almacenar rutas de acceso.
· Se crea el directorio ventas
· En el directorio rais ventas ejecutamos nuestro script ventas_consolidadadas.sh
· Validamos el árbol de directorios generados (se instaló tree para una mejor visualización)
2. Consolide las ventas diarias de las tres tiendas en un único archivo llamado ‘ventas_consolidadas_YYYYMMDD.txt’ donde ‘YYYYMMDD’ es la fecha del día en formato año, mes y día. Usar fecha actual.
· Visualizamos el contenido de los ficheros de las ventas de las tiendas
3. Ordene el archivo consolidado por nombre del producto.
· Ordenamos nuestro archivo con sort $archivo -o $archivo
4. Añada al inicio del archivo consolidado una cabecera que diga “Informe de ventas del día YYYYMMDD”.
· Visualizamos el fichero ventas_consolidadas_YYYYMMDD.txt y su contenido.
5. Asegúrese de que el archivo consolidado tenga permisos de lectura para todos los usuarios, pero sólo permisos de escritura para el propietario.
· Se usa el comando chmod 644 para darle los permisos solicitados.
6. Ahora cree otro archivo para filtrar las ventas del ‘ProductoA’, y guárdalo en la misma ruta que el consolidado pero con el nombre ‘ventas_consolidadas_productoa.txt’.
· Filtramos con grep a “ProductoA”
7. Automatice el script para que se ejecute todos los días a las 11:00 PM.
· Configuramos el crontab con ayuda de crontab guru
· Además se guarda un log de la ejecución.
A continuación se adjunta el código del script shell ventas_consolidadadas.sh el cual genera los datos de los ficheros y rutas requeridas para el proyecto, como los puntos anteriormente solicitados.
#!/bin/bash# Variables
ruta_tienda1="/home/renzo_ml_engineer/ventas/Tienda1"
ruta_tienda2="/home/renzo_ml_engineer/ventas/Tienda2"
ruta_tienda3="/home/renzo_ml_engineer/ventas/Tienda3"
consolidado="/home/renzo_ml_engineer/ventas/Consolidado"
producto="ProductoA"
# Crea los directorios
mkdir -p $ruta_tienda1
mkdir -p $ruta_tienda2
mkdir -p $ruta_tienda3
mkdir -p $consolidado
# Llenando los datos a los txt
# Tienda 1
echo "ProductoA: 10 unidades" > $ruta_tienda1/ventas_dia.txt
echo "ProductoB: 5 unidades" >> $ruta_tienda1/ventas_dia.txt
echo "ProductoC: 15 unidades" >> $ruta_tienda1/ventas_dia.txt
echo "ProductoD: 20 unidades" >> $ruta_tienda1/ventas_dia.txt
# Tienda 2
echo "ProductoA: 8 unidades" > $ruta_tienda2/ventas_dia.txt
echo "ProductoE: 10 unidades" >> $ruta_tienda2/ventas_dia.txt
echo "ProductoF: 25 unidades" >> $ruta_tienda2/ventas_dia.txt
echo "ProductoB: 10 unidades" >> $ruta_tienda2/ventas_dia.txt
# Tienda 3
echo "ProductoG: 5 unidades" > $ruta_tienda3/ventas_dia.txt
echo "ProductoH: 10 unidades" >> $ruta_tienda3/ventas_dia.txt
echo "ProductoA: 7 unidades" >> $ruta_tienda3/ventas_dia.txt
echo "ProductoD: 15 unidades" >> $ruta_tienda3/ventas_dia.txt
# Concatena la fecha actual al nombre del archivo
archivo="ventas_consolidadas_$(date +"%Y%m%d").txt"
# Consolida las ventas del día
cat $ruta_tienda1/ventas_dia.txt $ruta_tienda2/ventas_dia.txt $ruta_tienda3/ventas_dia.txt > $archivo
# Ordena las ventas del día
sort $archivo -o $archivo
# Añade una cabecera al archivo consolidado
echo "Informe de ventas del día $(date +"%Y%m%d")" > nuevo_fichero.txt
cat $archivo >> nuevo_fichero.txt
mv nuevo_fichero.txt $archivo
#permisos de lectura para todos los usuarios,permisos de escritura para el propietario
chmod 644 $archivo
grep "$producto" $archivo > ventas_consolidadas_productoa.txt
mv $archivo $consolidado
mv ventas_consolidadas_productoa.txt $consolidado
# Imprime un mensaje de éxito
echo "El proceso de ventas consolidado se creó correctamente."
Con eso se completarían todos los puntos solicitados en la práctica calificada.
Se añaden pantallazos de participación en clases.
Y directorio de los laboratorios desarrolladas.