¡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ónecho ""
- aquí imprimimos una nueva líneaecho "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