Cómo ejecutar múltiples comandos en un trabajo de Cron

Cómo ejecutar múltiples comandos en un trabajo de Cron

Crontab es una utilidad para ejecutar tareas programadas a intervalos regulares en sistemas Unix-Linux. Nos permite programar múltiples trabajos cron para funcionar a la vez. Podemos programar cualquier comando o script de shell para que se pueda ejecutar en el terminal. Cada trabajo programado en Crontab está separado por una nueva línea. También podemos definir múltiples comandos o scripts en un solo trabajo cron para ejecutar uno por uno.

Cómo separar dos comandos en Linux

Puede separar dos o más comandos usando operadores de semicolones (;), lógicos y (&&) o lógicos o (||). ¿Cuál de estos operadores usamos depende totalmente de los requisitos?. Aquí está la comprensión básica del uso de estos operadores.

  1. Semicolon (;): se usa para separar múltiples comandos. Esto ejecuta todos los comandos sin verificar el estado de salida de los comandos anteriores.
    command_1; command_2; Command_N 
  2. Lógico y (&&): se usa para separar los comandos cuando queremos ejecutar el siguiente comando solo si el comando anterior se ejecutó con éxito con el estado de salida 0.
    command_1 && command_2 && command_n 
  3. Lógico o (||): se usa para separar los comandos cuando queremos ejecutar el comando siguiente solo si el comando anterior falló con un estado de salida sin 0.
    Command_1 || Command_2 || Command_N 

Cómo programar un trabajo cron

Primero, cambie al usuario del que desea ejecutar un trabajo cron. Luego abra el editor de Crontab ejecutando el siguiente comando.

crontab -e  

Luego agrega una entrada de trabajo cron al archivo como a continuación:

Los comandos de Crontab separados con lógico y

Ejecutando múltiples comandos en un solo trabajo de Cron

Discutamos los ejemplos de la vida real de ejecutar múltiples comandos con Crontab con diferentes 2 separaciones.

  1. Uso de Semicolon (;)
  2. Podemos separar dos o más comandos con semicolones, que no requieren verificación del estado de salida del comando anterior. Por ejemplo, debe cambiar el permiso de todos los archivos a 777, pero necesita establecer 777 para el directorio de registros.

    0 2 * * * chmod -r 755/var/www/myapp; chmod -r 777/var/www/myapp/logs
    10 2 * * * chmod -r 755/var/www/myapp; chmod -r 777/var/www/myapp/logs

    Comandos de Crontab separados con punto y coma (;)

  3. Usando lógico y (&&)
  4. Use este operador, donde desea ejecutar el siguiente comando solo si el anterior se ejecuta correctamente (Salir el estado 0). Por ejemplo, quieres ejecutar la copia de seguridad.SH después de cambiar con éxito al directorio de /copia de seguridad.

    0 2 * * * CD /Backup && Bash Copia de copia de seguridad.mierda
    10 2 * * * CD /Backup && Bash Copia de copia de seguridad.mierda

    Los comandos de Crontab separados con lógico y

  5. Usando lógico o (||)
  6. Use el operador lógico o (||), cuando desea ejecutar el siguiente comando solo si el anterior falló (Salir el estado no 0). Por ejemplo, desea mostrar un mensaje o enviar un correo electrónico si el archivo de copia de seguridad no se encuentra.

    0 2 * * * [-f /backup /mydb -'Date +%f '.SQL] || Echo "El archivo de copia de seguridad de hoy no se encuentra"
    10 2 * * * [-f /backup /mydb -'Date +%f '.SQL] || Echo "El archivo de copia de seguridad de hoy no se encuentra"
    Los comandos de Crontab separados con lógico y

Conclusión

En esta publicación de blog, ha aprendido sobre la ejecución de múltiples comandos en una sola entrada de trabajo de Cron. También discutió varias opciones para separar los comandos. El artículo le proporciona los detalles básicos sobre cada separador que se utiliza para separar los comandos.