Pregunta: ¿Cómo ejecuto cierto script de shell a intervalos específicos en Linux usando el trabajo cron? Proporcione ejemplos usando diferentes períodos de tiempo.
Además, no olvide leer nuestro artículo crontab anterior que contiene 15 ejemplos prácticos y también explica sobre @monthly, @daily, .. etiquetas que puedes usar en tu crontab.
1. Ejecutar un trabajo cron cada 5 minutos
El primer campo es para Minutos. Si especifica * en este campo, se ejecuta cada minutos. Si especifica */5 en el primer campo, se ejecuta cada 5 minutos como se muestra a continuación.
*/5 * * * * /home/ramesh/backup.sh
2. Ejecutar un trabajo cron cada 5 horas
El segundo campo es para las horas. Si especifica * en este campo, se ejecuta cada hora. Si especifica */5 en el segundo campo, se ejecuta cada 5 horas como se muestra a continuación.
0 */5 * * * /home/ramesh/backup.sh
3. Ejecutar un trabajo cada 5 segundos
El trabajo cron no se puede usar para programar un trabajo en un intervalo de segundos. es decir, no puede programar un trabajo cron para que se ejecute cada 5 segundos. La alternativa es escribir un script de shell que use el comando 'sleep 5'.
Cree un script de shell cada-5-segundos.sh usando bash while loop como se muestra a continuación.
$ cat every-5-seconds.sh #!/bin/bash while true do /home/ramesh/backup.sh sleep 5 done
Ahora, ejecute este script de shell en segundo plano usando nohup como se muestra a continuación. Esto seguirá ejecutando el script incluso después de cerrar la sesión. Esto ejecutará su script de shell backup.sh cada 5 segundos.
$ nohup ./every-5-seconds.sh &
4. Ejecutar un trabajo cada 5 días de la semana
Este ejemplo no se trata de programar "cada 5 días". Pero esto es para programar "cada 5 días de la semana".
El quinto campo es DOW (día de la semana). Si especifica * en este campo, se ejecuta todos los días. Para ejecutar todos los viernes, especifique el 5 de viernes en este campo.
El siguiente ejemplo ejecuta backup.sh todos los viernes a la medianoche.
0 0 * * 5 /home/ramesh/backup.sh (or) 0 0 * * Fri /home/ramesh/backup.sh
Puede usar el número de usuario o el acrónimo de tres letras correspondiente para el día de la semana, como se muestra a continuación.
- 0=Sol
- 1=Lun
- 2=martes
- 3=miércoles
- 4=jueves
- 5=viernes
- 6=Sábado
5. Ejecutar un trabajo cada 5 meses
No hay una forma directa de decir "cada 5 meses", sino que debe especificar en qué meses específicos desea ejecutar el trabajo. Probablemente desee ejecutar el trabajo el quinto mes (mayo) y el décimo mes (octubre).
El cuarto campo es para Meses. Si especifica * en este campo, se ejecuta todos los meses. Para ejecutar el mes específico, debe especificar el número que corresponde al mes. Por ejemplo, para ejecutar el trabajo en mayo y octubre, debe especificar 5,10 (o) simplemente puede usar el acrónimo de 3 letras del mes y especificar mayo, octubre.
El tercer campo es para DOM (Día del Mes). Si especifica * en este campo, se ejecuta todos los días del mes. Si especifica 1 en este mes, se ejecuta el primero del mes.
El siguiente ejemplo ejecuta backup.sh dos veces al año. es decir, el 1 de mayo a la medianoche y el 1 de octubre a la medianoche.
0 0 1 5,10 * /home/ramesh/backup.sh (or) 0 0 1 May,Oct * /home/ramesh/backup.sh