Introducción
Crontab es una utilidad para ejecutar tareas programadas a intervalos regulares en sistemas Unix-Linux. Nos permite programar múltiples trabajos cron para que se ejecuten al mismo tiempo. Podemos programar cualquier comando de shell o script para que se ejecute en la terminal. Cada CronJob programado en crontab está separado por una nueva fila. También podemos definir varios comandos o scripts en un solo trabajo cron para que se ejecuten uno por uno.
Cómo separar dos comandos en Linux
Puede separar dos o más comandos utilizando los operadores punto y coma (;), AND lógico (&&) u OR lógico (||). Cuál de estos operadores usamos depende totalmente de los requisitos. Estos son los conceptos básicos del uso de estos operadores.
Punto y coma (;): se utiliza para separar varios comandos. Esto ejecuta todos los comandos sin verificar el estado de salida de los comandos anteriores:
command_1; command_2; command_n
AND lógico (&&): se utiliza para separar los comandos cuando desea ejecutar el siguiente comando solo si el comando anterior se ha ejecutado correctamente con el estado de salida 0
:
command_1 && command_2 && command_n
OR lógico (||): se utiliza para separar los comandos cuando desea ejecutar el siguiente comando solo si el comando anterior falló con un estado de salida diferente a 0
:
command_1 || command_2 || command_n
Cómo programar un trabajo cron
Primero, cambie al usuario desde el que desea ejecutar un trabajo cron. Luego abra el editor crontab ejecutando el siguiente comando:
crontab -e
Luego agregue un Cron Job al archivo.
Ejecute múltiples comandos en un solo proceso Cron
Analicemos ejemplos de la vida real de la ejecución de múltiples comandos con crontab con varios 2 separados.
Usar punto y coma (;)
Podemos separar dos o más comandos con punto y coma, lo que no requiere verificar el estado de salida del comando anterior. Por ejemplo, debe cambiar el permiso de todos los archivos a 777 pero debe configurar 777 para el directorio de registros:
0 2 * * * chmod -R 755 /var/www/myapp; chmod -R 777 /var/www/myapp/logs
Usando AND lógico (&&)
Use este operador, donde desea ejecutar el siguiente comando solo si el anterior es exitoso (estado de salida 0). Por ejemplo, desea ejecutar backup.sh después de cambiar con éxito al directorio / backup:
0 2 * * * cd /backup && bash backup.sh
Usar OR lógico (||)
Utilice el operador lógico OR (||) cuando desee ejecutar el siguiente comando solo si el anterior ha fallado (estado de salida distinto de 0). Por ejemplo, desea mostrar un mensaje o enviar un correo electrónico si no se encontró el archivo de copia de seguridad:
0 2 * * * [ -f /backup/mydb-`date +%F`.sql ] || echo "Today's backup file not found"
Conclusión
En esta publicación de blog, aprendió cómo ejecutar varios comandos en una sola entrada de Cron Job. También discutimos varias opciones para separar los comandos. El artículo proporciona detalles básicos sobre cada separador que se usa para separar los comandos.