¿Qué es Cron?
También llamado: cron job, tarea programada, crontab
Definición
Cron es el programador de tareas de los sistemas Linux. Ejecuta automáticamente comandos o scripts a la hora que indiques: cada noche, cada cinco minutos, el primer día de cada mes…
Se usa para todo lo que debe ocurrir sin intervención humana: copias de seguridad, envío de correos programados, limpieza de archivos temporales, renovación de certificados o sincronizaciones con otros servicios.
Ejemplo
Las tareas se definen en el crontab (crontab -e), una por línea, con cinco campos de tiempo y el comando:
# ┌───────── minuto (0-59)
# │ ┌─────── hora (0-23)
# │ │ ┌───── día del mes (1-31)
# │ │ │ ┌─── mes (1-12)
# │ │ │ │ ┌─ día de la semana (0-7, 0 y 7 = domingo)
# │ │ │ │ │
30 3 * * * /home/usuario/bin/backup.sh # cada día a las 03:30
*/5 * * * * php /var/www/app/artisan schedule:run # cada 5 minutos
0 9 1 * * /home/usuario/bin/informe.sh # el día 1 de cada mes a las 9:00
En cPanel, lo mismo se configura desde «Trabajos de cron», sin usar la terminal.
WordPress y su «falso cron»
WordPress tiene su propio sistema, WP-Cron, que se ejecuta cuando alguien visita la web. En webs con pocas visitas las tareas se retrasan, y en las de mucho tráfico se ejecuta demasiado. Lo recomendable es desactivarlo y llamarlo desde un cron real:
// wp-config.php
define('DISABLE_WP_CRON', true);
*/15 * * * * cd /var/www/example.com && wp cron event run --due-now >/dev/null 2>&1
Errores habituales
- Rutas relativas y variables de entorno: cron se ejecuta con un entorno mínimo. Usa rutas absolutas a los programas y archivos.
- No guardar la salida: si la tarea falla, nadie se entera. Redirige la salida a un log (
>> /var/log/backup.log 2>&1) o configuraMAILTO. - Confundir la zona horaria: el servidor puede estar en UTC.
¿Tienes un producto o servicio relacionado con Cron? Anúnciate en este término.
Términos relacionados
- PHPPHP es un lenguaje de programación que se ejecuta en el servidor para generar...
- Copia de seguridadUna copia de seguridad es un duplicado de los archivos y bases de datos...
- SSHSSH (Secure Shell) es un protocolo para conectarse a un servidor remoto y ejecutar...
- cPanelcPanel es el panel de control de hosting más extendido. Permite gestionar desde el...