Cómo uso Bash para automatizar tareas en Linux

Cómo uso Bash para automatizar tareas en Linux - Codelivly

Como usuario de Linux, probablemente ya sepa lo poderosa que puede ser la línea de comandos. Con un poco de conocimiento de las secuencias de comandos de Bash, puede automatizar tareas repetitivas y ahorrar mucho tiempo y esfuerzo. En este artículo, compartiré algunos consejos y trucos para usar Bash para automatizar tareas en Linux.

Índice
  1. ¿Qué es Bash?
  2. Cómo automatizar tareas con Bash
  3. Linux for command: automatice tareas en un archivo
  4. Ejecución condicional de Linux (si)
  5. preguntas frecuentes
  6. Conclusión

¿Qué es Bash?

Bash es un shell de comandos para Linux, lo que significa que proporciona una interfaz para que los usuarios interactúen con el sistema operativo. También es un lenguaje de secuencias de comandos, lo que significa que puede usarlo para escribir programas que automaticen tareas.

Bash está instalado de forma predeterminada en la mayoría de los sistemas Linux, por lo que no necesita instalar nada adicional para comenzar a usarlo. Puede abrir un shell Bash abriendo una ventana de terminal en su sistema Linux.

Descubra: Mastering Bash: una hoja de trucos de los 25 comandos principales y la creación de comandos personalizados

Cómo automatizar tareas con Bash

  • Escribir scripts de bash simples

Los scripts Bash son archivos de texto simples que contienen una serie de comandos. Puede crear un script Bash con cualquier editor de texto, como Nano o Vim. Una vez que haya escrito su script, puede ejecutarlo ejecutando el siguiente comando en la terminal:

 myscript.sh

Por ejemplo, suponga que desea automatizar el proceso de creación y acceso a un nuevo directorio. Aquí hay un script Bash que hace esto:

#!/bin/bash
mkdir new_directory
cd new_directory

Guardar este script como newdir.sh y hazlo ejecutable con el siguiente comando:

bashCopy codechmod +x newdir.sh

Ahora puede ejecutar el script ejecutando:

bashCopy code./newdir.sh
  • Ejecutar scripts automáticamente

Si tiene un script que desea ejecutar automáticamente en un momento específico, puede usar el cron demonio. cron es una utilidad integrada de Linux que le permite programar tareas para que se ejecuten en momentos específicos.

Usar cronnecesitas crear un crontab archivar. Este archivo contiene una lista de comandos que cron se ejecutará en momentos específicos. Puedes crear un crontab archivo ejecutando el siguiente comando en la terminal:

crontab -e

Esto abrirá el crontab archivo en su editor de texto predeterminado. Luego puede agregar una nueva línea al archivo para programar la ejecución de su secuencia de comandos. Por ejemplo, para ejecutar el newdir.sh script todos los días a las 3:30 p. m., puede agregar la siguiente línea:

30 15 * * * /path/to/newdir.sh
  • Uso de variables y declaraciones condicionales

Los scripts de Bash también pueden usar variables y declaraciones condicionales para tomar decisiones basadas en el estado actual del sistema. Por ejemplo, suponga que desea automatizar el proceso de verificación de la ejecución de un proceso específico. Aquí hay un script Bash que hace esto:

#!/bin/bash
PROCESS_NAME="myprocess"
if pgrep "$PROCESS_NAME" > /dev/null
then
    echo "$PROCESS_NAME is running"
else
    echo "$PROCESS_NAME is not running"
fi

Este guión utiliza el pgrep comando para verificar si el proceso con el nombre myprocess Esta corriendo. Si es así, el script muestra un mensaje que lo dice. De lo contrario, el script muestra un mensaje de que el proceso no se está ejecutando.

Linux for command: automatice tareas en un archivo

Si tiene un montón de archivos para trabajar a la vez y necesita hacer lo mismo con cada archivo, use el for orden. Este comando recorre una lista de archivos y ejecuta uno o más comandos. EL for el comando se ve así:

for variable in list
do
    commands
done

Agregué espacio adicional para ayudar a separar las diferentes partes del for orden. Este comando multilínea puede parecer difícil de ejecutar en la línea de comando, pero puede usar ; para poner todo en una línea, así:

for variable in list ; do commands ; done

Veámoslo en acción. Una forma en que uso el for El comando es cambiar el nombre de un montón de archivos. Más recientemente, tuve un montón de capturas de pantalla a las que quería cambiarles el nombre. Las capturas de pantalla tenían nombres como filemgr.png O terminal.png y quise poner screenshot antes de cada sustantivo en su lugar. Corrí un solo for comando para cambiar el nombre de treinta archivos a la vez. Aquí hay un ejemplo con solo dos archivos:

$ ls
filemgr.png  terminal.png
$ for f in *.png ; do mv $f screenshot-$f ; done
$ ls
screenshot-filemgr.png  screenshot-terminal.png

EL for facilita la realización de una o más acciones en un conjunto de archivos. Puede usar un nombre de variable que sea significativo para usted, como image O screenshoto puede usar una variable de "acceso directo" como f, como hice en mi ejemplo. Cuando escribo guiones que usan un for bucle, estoy tratando de usar nombres de variables significativos. Pero cuando uso for en la línea de comando, generalmente uso un nombre de variable corto como f para archivos o d para directorios.

Cualquiera que sea el nombre que elija para su variable, asegúrese de hacer referencia a la variable usando $ en el comando Esto expande la variable al nombre del archivo sobre el que está actuando. Pegar help for en su aviso de Bash para obtener más información sobre el for orden.

Consulte: trucos de secuencias de comandos de bash que pueden ahorrarle tiempo en Linux

Ejecución condicional de Linux (si)

Bucle sobre un conjunto de archivos con for es útil cuando necesita hacer lo mismo con cada archivo. Pero, ¿qué sucede si necesita hacer algo diferente para ciertos archivos? Para esto necesita ejecución condicional con el if declaración. EL if declaración se ve así:

if test
then
    commands
fi

también puedes hacer De lo contrario pruebas usando el else palabra clave:

if test
then
    commands
else
    commands
fi

Para un procesamiento más complicado, puede utilizar si/si no-si/si no evaluaciones Podría usar esto en un script, cuando necesito automatizar un trabajo para procesar una colección de archivos a la vez:

if test
then
    commands
elif test2
then
    commands
elif test3
then
    commands
else
    commands
fi

EL if El comando le permite realizar muchas pruebas diferentes, como si un archivo es realmente un archivo, o si un archivo está vacío (tamaño cero). Pegar help test en su indicador de Bash para ver los diferentes tipos de pruebas que puede usar en un if declaración.

Por ejemplo, supongamos que quiero limpiar un directorio de registro que contiene varias docenas de archivos. Una tarea común en la gestión de registros es eliminar todos los registros vacíos y comprimir otros registros. La forma más fácil de resolver este problema es simplemente eliminar los archivos vacíos. No hay if prueba que corresponde exactamente a esto, pero tenemos -s archivo para probar si algo es un archivo, y si el archivo no está vacío (tiene un tamaño). Esto es lo contrario de lo que queremos, pero podemos cancelar la prueba con ! ver si algo no es un archivo o está vacío.

Descubre: Lista cronológica de recursos para aprender Bash desde principiante hasta nivel avanzado

Veamos un ejemplo para ver esto en el trabajo. Creé dos archivos de prueba: uno está vacío y el otro contiene datos. Nosotros podemos usar if para imprimir el mensaje "vacío" si el archivo esta vacio:

$ ls
datafile  emptyfile
$ if [ ! -s datafile ] ; then echo "empty" ; fi
$ if [ ! -s emptyfile ] ; then echo "empty" ; fi
empty

Podemos combinar esto con para examinar una lista de archivos de registro para eliminar archivos vacíos para nosotros:

$ ls -l
total 20
-rw-rw-r--. 1 jhall jhall 2 Jul  1 01:02 log.1
-rw-rw-r--. 1 jhall jhall 2 Jul  2 01:02 log.2
-rw-rw-r--. 1 jhall jhall 2 Jul  3 01:02 log.3
-rw-rw-r--. 1 jhall jhall 0 Jul  4 01:02 log.4
-rw-rw-r--. 1 jhall jhall 2 Jul  5 01:02 log.5
-rw-rw-r--. 1 jhall jhall 0 Jul  6 01:02 log.6
-rw-rw-r--. 1 jhall jhall 2 Jul  7 01:02 log.7
$ for f in log.* ; do if [ ! -s $f ] ; then rm -v $f ; fi ; done
removed 'log.4'
removed 'log.6'
$ ls -l
total 20
-rw-rw-r--. 1 jhall jhall 2 Jul  1 01:02 log.1
-rw-rw-r--. 1 jhall jhall 2 Jul  2 01:02 log.2
-rw-rw-r--. 1 jhall jhall 2 Jul  3 01:02 log.3
-rw-rw-r--. 1 jhall jhall 2 Jul  5 01:02 log.5
-rw-rw-r--. 1 jhall jhall 2 Jul  7 01:02 log.7

Al usar el if El comando puede agregar inteligencia a los scripts, para realizar acciones solo cuando sea necesario. a menudo uso if en scripts cuando necesito probar si un archivo existe o no existe en mi sistema, o si la entrada que examina el script es un archivo o un directorio. Utilizando if permite que mi secuencia de comandos realice diferentes acciones según sea necesario.

preguntas frecuentes

Linux es un sistema operativo de código abierto ampliamente utilizado en servidores, mainframes, supercomputadoras y sistemas integrados. Fue creado por Linus Torvalds en 1991 y está basado en el sistema operativo Unix.

Bash es un lenguaje de comando y shell de Unix que se utiliza en Linux y otros sistemas operativos basados ​​en Unix. Proporciona una interfaz de línea de comandos para que los usuarios interactúen con el sistema y ejecuten comandos.

  • P: ¿Cuáles son las tareas comunes que se pueden automatizar con los comandos de Linux?

Algunas tareas comunes que se pueden automatizar con los comandos de Linux incluyen la manipulación de archivos (mover, copiar, eliminar), la búsqueda y el filtrado de archivos, la gestión de procesos, la supervisión del sistema y la gestión de redes.

  • P: ¿Cuáles son los beneficios de usar Linux para automatizar tareas?

Linux proporciona una amplia gama de herramientas de línea de comandos potentes y flexibles que se pueden utilizar para automatizar tareas. También es de código abierto, gratuito y altamente personalizable, lo que lo convierte en una opción ideal para desarrolladores y administradores de sistemas que necesitan automatizar tareas complejas.

  • P: ¿Es Linux difícil de dominar?

Linux puede ser difícil para los principiantes que no están familiarizados con la interfaz de línea de comandos, pero hay muchos recursos disponibles para ayudarlo a aprender. Con práctica y paciencia, puede dominar el uso de comandos de Linux y la automatización de tareas.

Conclusión

Bash es una poderosa herramienta para automatizar tareas en Linux. Con un poco de conocimiento de las secuencias de comandos de Bash, puede ahorrar mucho tiempo y esfuerzo. Ya sea que esté automatizando tareas simples o flujos de trabajo complejos, Bash puede ayudarlo a realizar el trabajo de manera más rápida y eficiente.

Si quieres conocer otros artículos parecidos a Cómo uso Bash para automatizar tareas en Linux puedes visitar la categoría Tutoriales.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Esta página web utiliza cookies para analizar de forma anónima y estadística el uso que haces de la web, mejorar los contenidos y tu experiencia de navegación. Para más información accede a la Política de Cookies . Ver mas