====== cron ======
Administrador de procesos en segundo plano que ejecuta programas o scripts a intervalos regulares.
Los procesos que deben ejecutarse y la hora a la que deben hacerlo se especifican en el archivo ''crontab''.
El nombre **cron** proviene del griego //chronos// (χρόνος) que significa **tiempo**.
Cron se puede definir como el equivalente a **Tareas Programadas** de Windows.
===== crontab =====
''crontab'' es el fichero que contiene la programación del cron, es decir, donde se define cuándo se ejecutarán los programas o scripts.
Estructura:
.--------------- minuto (0-59)
| .------------ hora (0-23)
| | .--------- día del mes (1-31)
| | | .------ mes (1-12) o jan,feb,mar,apr,may,jun,jul... (meses en inglés)
| | | | .--- día de la semana (0-6) (domingo=0 ó 7) o sun,mon,tue,wed,thu,fri,sat (días en inglés)
| | | | |
* * * * * comando a ejecutar
Ejemplo:
1 0 * * * echo -n "" > /www/apache/logs/error_log
La configuración anterior está diciendo a cron que se vacíe el fichero ''/www/apache/logs/error_log'' a las 00:01 diariamente.
Otro ejemplo:
*/5 * * * * /home/user/test.pl
El script ''/home/user/test.pl'' se ejecutará cada 5 minutos.
Es posible indicar más de un comando si lo separamos por punto y coma ('';''):
30 21 * * * cd /media/linux/isos;wget http://example.com/archivo.loquesea
* [[https://crontab.guru/examples.html|Cron Examples]]
==== Horarios predefinidos ====
Hay varios valores predefinidos que se pueden utilizar para sustituir una expresión del cron:
^ Entrada ^ Descripción ^ Equivale A^
| ''@yearly'' | Se ejecuta una vez al año | ''0 0 1 1 *'' |
| ''@annually'' | (igual que @yearly) | ''0 0 1 1 *'' |
| ''@monthly'' | Se ejecuta una vez al mes | ''0 0 1 * *'' |
| ''@weekly'' | Se ejecuta una vez a la semana | ''0 0 * * 0'' |
| ''@daily'' | Se ejecuta una vez al día | ''0 0 * * *'' |
| ''@midnight'' | (igual que @daily) | ''0 0 * * *'' |
| ''@hourly'' | Se ejecuta una vez cada hora | ''0 * * * *'' |
Por ejemplo, si vamos a ejecutar algo cada hora, tendríamos dos opciones:
0 * * * * comando
O utilizando el valor predefinido ''@hourly'':
@hourly comando
===== Recursos =====
* [[https://crontab.guru/|crontab guru]]: editor de expresiones para usar en la programación del cron.