Hoy hablaremos de un lenguaje extremadamente importante, especialmente para aquellos que viven su día a día administrando servidores Linux. Hoy hablaremos sobre el Bash Scripting en la Administración de Servidores Linux. Si bien muchas personas no se sienten tan cómodas con este lenguaje al venir de otros clásicos como PHP, una vez que lo comienzas a utilizar es imposible no sentirse a gusto e incluso es muy probable que lo comiences a utilizar en tu propia PC si te encuentras corriendo Linux en ella.
La importancia del Bash Scripting en la Administración de Servidores Linux
Si siempre has utilizado Windows, es muy probable que hayas evitado la necesidad de abrir la consola, pero en un ambiente Linux, muchas de las funcionalidades se hacen a través de ella y si bien también podrás encontrarlas de forma gráfica, la mayoría de las veces es mucho más simple y rápidas llevarlas a cabo por consola.
Además de que si eres un SysAdmin, ya sabrás que las acciones realizadas en los servidores, si estos son Linux, deberás si o si llevarlas a cabo por consola, además de que obviamente con este increíble lenguaje podrás monitorizar los servidores, controlar los servicios, instalar y actualizar ya sea el sistema operativo o distintos paquetes, entre muchas cosas más, con tan solo tipear un par de comandos.
Este lenguaje está especialmente diseñado para que puedas tener control total del servidor, y sin duda si eres un SysAdmin hay algunos comandos que te serán de mucha ayuda, además de que también con él podrás realizar Scripts que te ayudarán a realizar tareas automatizadas y a mejorar de gran manera la motorización de estos.
¿Qué puedo hacer usando Bash Scripting?
Aquí tenemos algunos ejemplos de tareas que podemos realizar mediante un script con diferentes comando.
Realizar backups
La realización de backups en un servidor es algo extremadamente importante, por suerte a través de un script bash y utilizando algunos de los comandos más conocidos esto no es un problema. Para casos como estos podemos utilizar rsync que nos permitirá sincronizar carpetas y archivos así como también enviarlos entre distintos servidores.
Chequeos de monitorización
La monitorización de servidores sin duda es algo que junto con los backups ocupan los primeros puestos en la lista de cosas importantes de un SysAdmin. Con bash scripting podrás sin problemas crear un script que chequee el estado del servidor y en caso de que detecte algo anormal te envíe un mail por ejemplo, que reinicie servicios o te envíe un sms si es necesario.
Busqueda de Malware
Otro claro ejemplo es la búsqueda de Malware. El malware es algo que afecta la mayoría de los servidores especialmente a los compartidos, es por ello que te servirá de mucho crear un script que busque archivos con ciertos patrones por ejemplo, y en caso de que los encuentre te envíe una alerta con la dirección de éstos para que puedas chequearlos por tu cuenta y eliminarlos, o bien que los coloque en «quarentena» en algúna carpeta específica para que tu puedas verificar si son maliciosos o no.
Ejemplos de Bash Scripting Básico
Aquí les dejamos unos ejemplos de scrips en bash básicos, que nos servirán para tener una idea no solamente de como funcionan sino también de lo importante y poderosos que pueden llegar a ser.
El ejemplo más sencillo que encontramos siempre en los nuevos lenguajes, un «Hola Mundo» en bash.
#!/bin/bash echo Hola Mundo!
Un ejemplo utilizando variables y un simple if/else, preguntando si el valor de ésta es ‘1’ o no.
#!/bin/bash variable=1 if [ $variable -eq 1 ]; then echo "Verdadero!" else echo "Falso!" fi
Declarar un array y ejecutar un for en él mostrando los valores que hemos guardado.
#!/bin/bash declare -a arr=("rojo" "verde" "azul" "amarillo") //Declaramos un array for i in "${arr[@]}" //Recorremos el array do echo "$i" //Mostramos el contenido done
También en bash, al igual que en otros lenguajes tenemos la posibilidad de realiza funciones para modular nuestro script. En este caso, mostraremos el ejemplo de una función que nos permite interactuar con el usuario, pidiéndole que nos indique si desea proceder o no.
#!/bin/bash sino() { //Aquí declaramos la función echo -n "¿Desea continuar? (si/no): " read PROCEDER; until [ "$PROCEDER" = "si" ] || [ "$PROCEDER" = "no" ]; do echo -n "Por favor, ingrese 'si' o 'no': "; read PROCEDER done if [ "$PROCEDER" = "si" ] then return 0; else return 1; fi return 1; } sino //Aquí llamamos a la función para sea ejecutada
¿Cómo ejecutamos nuestro script una vez realizado?
Ejecutar un script bash es de echo realmente sencillo. Primero que nada, debemos darle permiso de ejecución, esto lo hacemos de la forma «chmod +x miscritp.sh«. Luego de darle permiso simplemente lo ejecutamos de la forma «./miscript.sh» o bien también podemos hacerlo de la forma «sh miscript.sh«/»bash miscript.sh«.
Igualmente, estos son solo unos ejemplos básicos. Una vez que hayas entrado en el mundo de bash scripting te aseguramos que muchas de las técnicas que has estado utilizando para administrar servidores o moverte en la consola, la llevará a cabo a través de él, y muchas de ellas las harás de forma automática hasta el punto en que con solo ejecutar un script, llevarás a cabo muchas tareas de una sola vez, y podrás comprender por qué afirmamos la solidez que tiene el Bash Scripting en la Administración de Servidores Linux.
En Infranetworking, siempre nos encontramos creando nuevos scripts o mejorando aquellos con los que contábamos a modo de mejorar la experiencia de nuestros clientes, encontrar Malware más rápido y acertadamente, chequear configuraciones, hacer backups, etc. Además de que también con él tenemos la posibilidad de brindarle soluciones de forma flexible a cada cliente en particular según sus necesidades o bien solucionar temas puntuales a través de él. Sin duda en Infranetworking el Bash scripting es algo que nos acompaña en nuestro día a día.
Conclusión
Como vemos, el Bash Scripting en la Administración de Servidores Linux es realmente muy importante en nuestras tares como SysAdmins, con él podremos realizar muchas tareas dentro de ellos, así como también monitorizarlos y verificar su estado general. Además de que no solo nos permitirá movernos dentro de servidores, sino que también dentro de tu propia PC si ya estás utilizando Linux en ella.
Lecturas recomendadas: