crontab
, el cual es extremadamente útil para ejecutar programas ya sea en una fecha específica, o con alguna periocidad. La resolución máxima de crontab es de un minuto y la mínima es de una vez al año.crontab
se debe editar el archivo de configuración, para eso, es necesario escribir en la consola:crontab -e. Una vez escrito el comando, se debe escojer el editor de texto que se desea utilizar para editar el archivo de configuración. El archivo de configuración es pequeño y simple, por lo que se recomienda utilizar la opción
nano
. Deberías ver algo similar a esto:nano
, para guardar y salir, debes apretar "ctrl+x", luego "y" y finalmente Enter.
m h dom mon dow commandoDonde las variables son (de izquierda a derecha):
#todos los jueves 30 de mayo a las 23:17 17 23 30 5 4 /usr/bin/python /home/lab/correr.pyNotemos lo siguiente:
#todos los 30 de mayo a las 23:17 17 23 30 5 1,2,3,4,5,6,7 /usr/bin/python /home/lab/correr.pyPodemos escribir un rango, del 1 al 7 haciendo:
#todos los 30 de mayo a las 23:17 17 23 30 5 1-7 /usr/bin/python /home/lab/correr.pyPodemos reemplazar "todos los valores", por un asterísco "*", por lo tanto, equivalentemente podemos escribir:
#todos los 30 de mayo a las 23:17 17 23 30 5 * /usr/bin/python /home/lab/correr.pyPodemos hacer que este código corra todos los 30 de mayo cada 15 minutos:
#todos los 30 de mayo cada 15 minutos */15 * 30 5 * /usr/bin/python /home/lab/correr.pyPodemos hacer que este código corra todos los 30 de mayo y 5 al 15 de mayo cada 15 minutos:
#todos los 30 de mayo y 5 al 15 de mayo cada 15 minutos */15 * 30,5-15 5 * /usr/bin/python /home/lab/correr.pyPodemos agregarle mucha más complejidad, por ejemplo:
#cada 15 minutos y en el minuto 10 de las horas 00 y 12, del 1 al 15 de mayo más los días pares, de los meses mayo a diciembre solo si es lunes, miercoles o jueves. */15,10 */12 1-15,*/2 5-12 1,3-4 /usr/bin/python /home/lab/correr.pyTípicamente no se hacen configuraciones tan complejas. Es muy común querer ejecutar un comando cada minuto:
#cada 1 minuto * * * * * /usr/bin/python /home/lab/correr.pyO cada 10 minutos:
#cada 10 minutos */10 * * * * /usr/bin/python /home/lab/correr.pyUna vez al día a las 12:00:
#Una vez al día a las 12:00 0 12 * * * /usr/bin/python /home/lab/correr.pyConsideraciones importantes de crontab:
sudo crontab -e
/usr/bin/python /home/lab/correr.py
. Debuggear en crontab es dificil.
echo $PATHLuego copiar el string de la siguiente manera al comienzo del crontab (utiliza el string que te salió a ti):
export PATH=$PATH:/home/lab/bin:/home/lab/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin