Aplicaciones reales de los Pipelines de Linux
En este paso final, explorarás algunas aplicaciones reales de los pipelines de Linux analizando archivos de registro (log files), procesando archivos de datos y resolviendo tareas comunes de administración de sistemas.
Analizando archivos de registro
Los administradores de sistemas a menudo necesitan extraer información útil de los archivos de registro. Usemos pipelines para analizar el archivo server_log.txt:
- Contar las ocurrencias de cada nivel de registro (INFO, WARNING, ERROR):
cd ~/project
cat server_log.txt | grep -o "INFO\|WARNING\|ERROR" | sort | uniq -c
Salida:
4 INFO
3 ERROR
2 WARNING
- Extraer todas las marcas de tiempo (timestamps) y los niveles de registro:
cat server_log.txt | grep -o "\[[0-9-]* [0-9:]*\] [A-Z]*" | head -5
Salida:
[2023-05-10 08:45:22] INFO
[2023-05-10 09:12:35] ERROR
[2023-05-10 09:14:01] INFO
[2023-05-10 09:14:10] INFO
[2023-05-10 09:30:45] WARNING
Procesando datos CSV
Usemos pipelines para analizar el archivo sales.csv:
- Extraer y contar los productos únicos vendidos:
cat sales.csv | tail -n +2 | cut -d',' -f2 | sort | uniq -c
El comando tail -n +2 omite la línea de encabezado (header line) del archivo CSV.
Salida:
2 Keyboard
2 Laptop
2 Monitor
2 Mouse
1 Printer
- Calcular el número total de unidades vendidas:
cat sales.csv | tail -n +2 | cut -d',' -f3 | paste -sd+ | bc
Salida:
113
Este pipeline extrae la tercera columna (Units), combina todos los valores con signos "+", y luego usa la calculadora bc para calcular la suma.
Tareas de monitorización del sistema (System Monitoring Tasks)
Los pipelines de Linux también son útiles para tareas de monitorización y administración del sistema:
- Listar los 5 procesos principales (top 5 processes) que consumen más memoria:
ps aux | sort -k 4 -r | head -6
Este comando lista los procesos ordenados por la cuarta columna (uso de memoria) en orden inverso y muestra las 6 primeras líneas (incluido el encabezado).
- Encontrar todos los archivos mayores de 10MB y ordenarlos por tamaño:
cd ..
find . -type f -size +10M -exec ls -lh {} \; | sort -k 5 -h
Este comando mostrará nuestros archivos de prueba grandes ordenados por tamaño. La salida debería verse similar a:
-rw-r--r-- 1 labex labex 12M May 10 12:00 ./large_file3.dat
-rw-r--r-- 1 labex labex 15M May 10 12:00 ./large_file2.dat
-rw-r--r-- 1 labex labex 20M May 10 12:00 ./large_file1.dat
Este ejemplo demuestra cómo encontrar y ordenar archivos por tamaño. Los archivos se crearon durante la configuración específicamente para mostrar cómo funciona el filtrado de tamaño de archivo en Linux.
Estos ejemplos demuestran cómo los pipelines de Linux se pueden utilizar para resolver problemas del mundo real de manera eficiente. Al combinar comandos simples, puedes crear flujos de trabajo de procesamiento de datos (data processing workflows) potentes sin escribir scripts o programas complejos.