Amplíe las capacidades de sus desarrolladores en el shell de Linux.
Sus desarrolladores trabajan arduamente para crear las aplicaciones y servicios que su empresa necesita para seguir avanzando. Después de todo, el progreso es la única manera de mantenerse al día con la competencia. Y dado lo competitivo que se ha vuelto el mundo empresarial, cada ventaja que obtenga será un paso más para seguir siendo relevante.
Esto significa que su equipo de desarrollo debe estar al tanto de las últimas tendencias, utilizar las mejores herramientas y colaborar de forma eficaz y eficiente. Esto también significa que no debes ignorar algunas de las herramientas que existen desde hace décadas. Cuando algo está probado y sigue siendo relevante, debe utilizarse con tanta frecuencia como sea necesario.
Una de estas herramientas de la vieja escuela son los scripts de shell.
¿Qué son las secuencias de comandos de shell?
Los scripts de Shell son un pequeño programa informático que se ejecuta en un shell UNIX o Linux y que puede realizar prácticamente cualquier tipo de funcionalidad que sus desarrolladores puedan imaginar. Los scripts de Shell normalmente constan de uno o más comandos que funcionan juntos para un único propósito, como por ejemplo:
- Copias de seguridad
- Automatización de compilación de código.
- Creando un entorno de programación
- Procesamiento por lotes
- Manejo de archivos
- Vinculación de programas
- Monitoreo del sistema
- Tareas del sistema
Incluso puedes combinar cualquiera de los propósitos anteriores para crear un script multitarea que resuelva múltiples problemas. Por ejemplo, puede crear un script que cree un entorno de programación, realice una compilación de código automatizada y haga una copia de seguridad de los resultados.
La belleza de los scripts de shell es que son increíblemente flexibles y, a menudo, se limitan a la imaginación de la persona que crea el script.
Ventajas de los scripts de Shell
Los scripts de Shell tienen numerosas ventajas como:
- Lo que contiene un script de shell es muy similar a lo que se ingresaría en la interfaz de línea de comando.
- Los scripts de Shell son más fáciles de escribir que las aplicaciones tradicionales.
- Los scripts de Shell no requieren compiladores y se pueden modificar fácilmente sobre la marcha.
- Los scripts de Shell son portátiles y casi siempre de tamaño muy pequeño.
- Los scripts de Shell facilitan la ejecución de múltiples comandos desde un solo comando.
- La depuración es interactiva.
Desventajas de los scripts de Shell
Los scripts de Shell no son perfectos ni adecuados para todos los casos de uso. Los scripts de Shell pueden ser propensos a errores, por lo que cualquiera que escriba dichos scripts debe hacerlo con precaución. Los scripts de Shell también son más lentos que una aplicación tradicional; por lo tanto, si la velocidad es fundamental, tendrás que tomar otra ruta.
Finalmente, los scripts de shell no son exactamente adecuados para tareas más grandes y complejas. El mejor caso de uso para las secuencias de comandos de shell es una tarea pequeña (o una colección de tareas pequeñas) que normalmente se manejaría en la línea de comandos y usted prefiere vincular estos comandos o automatizarlos.
Un script de shell de ejemplo
Echemos un vistazo a un ejemplo sencillo. Digamos, por ejemplo, que desea realizar una copia de seguridad de un directorio desde una máquina, a través de la red, a otra máquina. Crearías este script de shell con un comando como:
nanobackup.sh
En este archivo puedes pegar lo siguiente:
#!/bin/sh rsync -av --delete /home/USUARIO USUARIO@SERVIDOR:/home/USUARIO/datos
Donde USUARIO es un usuario en la máquina local y remota y SERVIDOR es la IP o nombre de dominio de un servidor remoto.
Efectivamente, lo que hará este script es ejecutar un comando que puede emitir desde el símbolo del sistema bash. Este comando es:
rsync -av --delete /home/USUARIO USUARIO@SERVIDOR:/home/USUARIO/datos
Después de guardar y cerrar el archivo, asígnele permisos ejecutables con:
chmod u+x copia de seguridad.sh
Ahora, si ejecuta el comando backup.sh, el comando de resincronización se ejecutará y realizará una copia de seguridad del directorio de datos.
Pero, ¿cómo se automatiza esto? Para esto, emplearías cron. Crea un trabajo cron con:
crontab-e
Pegue lo siguiente en la parte inferior de su archivo crontab:
0 0 * * * /home/USER/backup.sh > /dev/null 2>&1
Guarde y cierre el archivo crontab y el script de respaldo se ejecutará cada medianoche.
Con los scripts de shell, acaba de crear una copia de seguridad automatizada (que se ejecutará todas las noches a medianoche) en aproximadamente 2 minutos y sin gastar un solo centavo en software. Por supuesto, este es un script de shell muy simple. Sus desarrolladores pueden hacer que los scripts de shell sean mucho más complejos agregando funciones, bucles y variables.
Por ejemplo, puede crear un script de salto que lo llevará a cualquier directorio principal que desee. Digamos, por ejemplo, que estás en ~/projects/java/projectx/v1/functions y quieres volver a ~/projects. En lugar de escribir cd ~/projects, puedes simplemente escribir proyectos de salto. Este script podría verse así:
#!/bin/bash # Un script bash simple para subir directamente al nivel de directorio deseado salto de función { # valor original del separador de campo interno OLDIFS=$IFS # establecer el separador de campo en " IFS=/ # convertir la ruta de trabajo en una matriz de directorios en la ruta # p.ej. /mi/ruta/es/como/esto # en (, mi, camino, es, como, este) ruta_arr=($PWD)
# establecer IFS al valor original IFS=$OLDIFS ubicación pos=-1 # ${path_arr(@)} da todos los valores en path_arr para directorio en "${path_arr(@)}" del # encontrar el número de directorios a los que ascender # llegar al directorio de destino pos=$($pos+1) si ("$1" = "$dir"); entonces
# longitud de la ruta_arr dir_in_path=${#ruta_arr(@)} #directorio de trabajo actual cwd=$PWD límite=$($dir_in_path-$pos-1) para ((i=0; i<límite; i++)) del cwd=$cwd/.. hecho cd $cwd romper fi hecho }
En el script bash anterior, usaría varios comandos y declaraciones para crear algo utilizable. Con los scripts de shell, prácticamente no hay límite para lo que sus desarrolladores pueden hacer. Y si ya saben cómo utilizar la línea de comandos de Linux, ya saben cómo escribir scripts de shell.
Conclusión
Si está buscando una manera de ayudar a que sus equipos de desarrolladores sean aún más ágiles, capacítelos con la capacidad de escribir scripts de shell. El retorno de la inversión de estas pequeñas joyas puede ser increíblemente alto porque casi no hay costo inicial (en finanzas o tiempo).
Con un poco de imaginación y conocimiento, sus desarrolladores pueden crear scripts increíblemente funcionales, únicos y específicos para manejar todo tipo de funcionalidades.