LINUX – Scripts BASH para obtener valor Uf Dolar Euro Utm desde web Banco Central Chile.

Utilizo estos valores para algunos cálculos en aplicaciones. Me permite obtener los valores del día actual.-

Le doy permisos de ejecución al Script : chmod u+x valores.sh Luego al ejecutarlo obtengo el siguiente resultado : (puedo trabajar con los valores por separado)

Publicado en Unix - Linux | Deja un comentario

LINUX – Medir tiempo de ejecución SCRIPT BASH.

En la administración de sistemas y el desarrollo de software, a menudo se necesita medir el tiempo para evaluar el rendimiento de una tarea o un programa. Aunque el tiempo se mide en segundos, puede ser difícil de interpretar si el valor es muy grande. Para facilitar su lectura, es útil convertir los segundos a un formato más convencional, como hora:minuto:segundo (HH:MM:SS).

Aquí hay cinco razones por las que sería una buena idea medir el tiempo de los scripts:

  1. Optimización del rendimiento: Al medir el tiempo de ejecución de los scripts, puedes identificar los cuellos de botella y áreas de mejora en tu código. Esto te permite optimizar el rendimiento y reducir el tiempo de ejecución, lo que es especialmente importante en aplicaciones de tiempo crítico o de alto rendimiento.
  2. Comparación de soluciones: A menudo, hay varias formas de abordar un problema en la programación. Al medir el tiempo de ejecución de diferentes soluciones, puedes comparar su eficiencia y elegir la mejor opción en términos de velocidad y rendimiento.
  3. Monitoreo del rendimiento a lo largo del tiempo: Medir el tiempo de ejecución de los scripts de manera regular te permite llevar un registro del rendimiento a lo largo del tiempo. Esto puede ser útil para detectar degradaciones en el rendimiento a medida que se introducen cambios en el código o en el entorno de ejecución, permitiendo así solucionar problemas antes de que se vuelvan críticos.
  4. Establecer expectativas realistas: Al conocer el tiempo de ejecución de tus scripts, puedes establecer expectativas realistas para los usuarios finales y otros miembros del equipo en cuanto a cuánto tiempo tomará completar ciertas tareas. Esto también puede ayudar en la planificación de recursos y en la evaluación de la viabilidad de ciertas características o soluciones.
  5. Identificación de problemas de escalabilidad: Cuando un script se ejecuta con diferentes tamaños de entrada o en diferentes entornos o simplemente la carga de trabajo aumento con el tiempo, el tiempo de ejecución puede variar significativamente. Medir el tiempo de ejecución en estas situaciones te ayuda a identificar problemas de escalabilidad y a tomar decisiones informadas sobre cómo manejar la carga de trabajo y la distribución de recursos en función de la demanda y el rendimiento esperados.

Para calcular el tiempo de ejecución de un script Bash, puedes usar el comando time antes de ejecutar el script. Este comando mostrará el tiempo real, el tiempo de usuario y el tiempo del sistema empleado en la ejecución.

O ejecutar el siguiente SCRIPT :

Al ejecutarlo, mostraría el siguiente resultado :

Publicado en Unix - Linux | Deja un comentario

Formas de ejecutar Múltiples Comandos a Través de una conexión SSH.

1.-  Usar comandos separados por punto y coma :

Este ejemplo cambiará al directorio /var/log, contará la cantidad de líneas que contienen “error” en el archivo syslog y mostrará las últimas 5 líneas del archivo syslog.

2.- Usar comandos separados por doble ampersand :

Este ejemplo cambiará al directorio /var/log, creará un archivo comprimido de syslog como syslog.gz y eliminará el archivo syslog original solo si los comandos anteriores tuvieron éxito.

3.- Usar comandos separados por un solo ampersand :

Este ejemplo buscará todos los archivos .txt en el directorio raíz y guardará los resultados en archivos.txt, esperará 5 segundos e imprimirá “¡Terminado!”, todo en paralelo.

4.- Usar la agrupación de comandos :

Este ejemplo ejecutará dos grupos de comandos en paralelo: el primer grupo cambiará al directorio /var/log y guardará todas las líneas que contienen “error” del archivo syslog en errores.log, y el segundo grupo cambiará al directorio /var/tmp y mostrará el uso del disco para cada elemento.

5.- Usar una subcapa :

Este ejemplo cambiará al directorio /var/log, contará la cantidad de líneas que contienen “error” en el archivo syslog y mostrará las últimas 5 líneas del archivo syslog, todo dentro de una subcapa (Ejecutar una subcapa (subshell) en Bash ofrece varias ventajas, incluyendo la capacidad de modificar el entorno de forma temporal, ejecutar comandos en paralelo y aislar procesos. Las subcapas permiten crear entornos de ejecución independientes dentro de los scripts, lo que facilita la gestión de procesos y la ejecución de comandos sin afectar el entorno principal).

6.- Ejecutar un script local de forma remota :

Para ejecutar un script local en el servidor remoto, se  ejecuta de esta forma..

7.- Usar un Here Document :

Este ejemplo cambiará al directorio /var/log, contará la cantidad de líneas que contienen “error” en el archivo syslog y mostrará las últimas 5 líneas del archivo syslog en el host remoto.

Publicado en Unix - Linux | Deja un comentario

LINUX – Manejo de errores en scripts bash.-

En los scripts bash , se deben utilizar diferentes métodos para detectar y manejar los posibles errores que pudiesen ocurrir durante la ejecución de nuestros scripts bash.

1.- En Bash, cada ejecución de un comando devuelve un Código de salida al finalizar su ejecución. Un código 0 (cero) indica que el comando se ejecuto en forma correcta. Cualquier código diferente, indica que ocurrió algún error en su ejecución. –

2.- Dentro de un scripts bash, el comando “set -e” le indica que salga inmediatamente (detenga la ejecución) si es que encuentra un código de salida diferente a 0 (cero).- Con esto nos evitamos verificar el estado de salida de cada comando ejecutado, dentro del script :

3.- Mediante el comando TRAP, el cual sirve para interceptar señales y errores. Se puede especificar TRAP para ejecutar comandos específicos. En el siguiente ejemplo, TRAP captura cualquier error (señalizado por la palabra clave ERR) y ejecuta el código de manejo de errores especificado.

4.- En lugar de mostrar el error por consola, se pueden redirigir a un archivo de salida para poder revisar posteriormente.

5.- Se puede crear una función personalizada para manejar diferentes tipos de errores, lo que añadirá flexibilidad a tus scripts.-

Publicado en Unix - Linux | Deja un comentario

LINUX – Script array asociativo para analizar LOG y contar direcciones IP.

Este scripts BASH lee un archivo de LOG y contabiliza las direcciones IP encontradas. Al final muestra un resumen con el total de apariciones de cada Dirección IP encontrada en el archivo de LOG :

Explicación del script:

  1. #!/bin/bash: Línea shebang que especifica que el script debe ejecutarse con bash.
  2. logfile="archivo.log": Variable que contiene el nombre del archivo de registro. Cambia «archivo.log» por el nombre de tu archivo.
  3. ip_counts=([ ]="0"): Inicializa un array asociativo llamado ip_counts. La clave es la dirección IP y el valor es el conteo (inicializado en 0).
  4. while IFS= read -r line: Bucle que lee el archivo de registro línea por línea.
  5. if [[ $line =~ ([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}) ]]: Expresión regular que busca direcciones IP en cada línea. Ajusta la expresión regular si tus direcciones IP tienen un formato diferente.
  6. ip=${BASH_REMATCH[1]}: Asigna la dirección IP encontrada a la variable ip.
  7. ip_counts[$ip]=$((ip_counts[$ip]+1)): Incrementa el conteo para la dirección IP en el array asociativo.
  8. for ip in "${!ip_counts[@]}": Bucle que itera sobre las claves del array asociativo (las direcciones IP).
  9. echo "$ip: ${ip_counts[$ip]}": Imprime la dirección IP y su conteo.
Publicado en Unix - Linux | Deja un comentario