¿cuanta gente a visto el blog?

Escribe tu primer script en Bash


¡Intentemos juntar lo que hemos aprendido hasta ahora y crear nuestro primer script en Bash!

Planificando el script

Como ejemplo, escribiremos un script que recopile información útil sobre nuestro servidor, como:

  • Uso actual del disco
  • Uso actual de la CPU
  • Uso actual de la RAM
  • Comprobar la versión exacta del núcleo

Siéntete libre de ajustar el script añadiendo o eliminando funcionalidades para que se adapte a tus necesidades.

Escribiendo el script

Lo primero que necesitas hacer es crear un nuevo archivo con una extensión .sh. Crearé un archivo llamado status.sh ya que el script que crearemos nos dará el estado de nuestro servidor. Una vez que hayas creado el archivo, ábrelo con tu editor de texto favorito.

Como aprendimos en el capítulo 1, en la primera línea de nuestro script en Bash debemos especificar el llamado Shebang:

#!/bin/bash

Todo lo que hace el shebang es instruir al sistema operativo para que ejecute el script con el ejecutable /bin/bash.

Agregando comentarios

A continuación, como se discutió en el capítulo 6, comencemos agregando algunos comentarios para que las personas puedan entender fácilmente para qué se utiliza el script. Para hacerlo, justo después del shebang, puedes agregar lo siguiente:

#!/bin/bash # Script que devuelve el estado actual del servidor

Agregando tu primera variable

Luego, apliquemos lo que aprendimos en el capítulo 4 y agreguemos algunas variables que podríamos querer usar en todo el script. Para asignar un valor a una variable en Bash, solo tienes que usar el signo =. Por ejemplo, almacenemos el nombre de host de nuestro servidor en una variable para que podamos usarlo más tarde:

server_name=$(hostname)

Al usar $(), le decimos a Bash que interprete el comando y luego asigne el valor a nuestra variable. Ahora, si hacemos eco de la variable, veremos el nombre de host actual:

echo $server_name

Agregando tu primera función

Como ya sabes, después de leer el capítulo 12, para crear una función en Bash necesitas usar la siguiente estructura:

function function_name() { your_commands }

Creamos una función que devuelve el uso actual de memoria en nuestro servidor:

function memory_check() { echo "" echo "El uso actual de memoria en ${server_name} es: " free -h echo "" }

Un resumen rápido de la función:

  • function memory_check() { - así definimos la función
  • echo "" - aquí imprimimos una nueva línea
  • echo "El uso actual de memoria en ${server_name} es: " - aquí imprimimos un pequeño mensaje y la variable $server_name
  • } - finalmente, así cerramos la función

Una vez que la función ha sido definida, para llamarla, solo usa el nombre de la función:

# Definir la función function memory_check() { echo "" echo "El uso actual de memoria en ${server_name} es: " free -h echo "" } # Llamar a la función memory_check

Desafío de agregar más funciones

Antes de revisar la solución, te desafío a usar la función de arriba y escribir algunas funciones por tu cuenta. Las funciones deben hacer lo siguiente:

  • Uso actual del disco
  • Uso actual de la CPU
  • Uso actual de la RAM
  • Comprobar la versión exacta del núcleo

Siéntete libre de usar Google si no estás seguro de qué comandos necesitas usar para obtener esa información. Una vez que estés listo, desplázate hacia abajo y verifica cómo lo hemos hecho y compara los resultados. ¡Ten en cuenta que hay múltiples formas correctas de hacerlo!

El script de ejemplo

Aquí está cómo se vería el resultado final:

#!/bin/bash ## # Script en BASH que verifica: # - Uso de memoria # - Carga de CPU # - Número de conexiones TCP # - Versión del núcleo ## server_name=$(hostname) function memory_check() { echo "" echo "El uso de memoria en ${server_name} es: " free -h echo "" } function cpu_check() { echo "" echo "La carga de CPU en ${server_name} es: " echo "" uptime echo "" } function tcp_check() { echo "" echo "Conexiones TCP en ${server_name}: " echo "" cat /proc/net/tcp | wc -l echo "" } function kernel_check() { echo "" echo "La versión del núcleo en ${server_name} es: " echo "" uname -r echo "" } function all_checks() { memory_check cpu_check tcp_check kernel_check } all_checks

Conclusión

¡La creación de scripts en Bash es increíble! No importa si eres un ingeniero DevOps/SysOps, desarrollador o simplemente un entusiasta de Linux, puedes usar scripts en Bash para combinar diferentes comandos de Linux y automatizar tareas diarias aburridas y repetitivas, ¡para que puedas enfocarte en cosas más productivas y divertidas!

No hay comentarios.:

Publicar un comentario