Unidad 5.3: cron/anacron y at
Automatizacion de tareas recurrentes y ejecuciones puntuales
Unidad 5.3: cron/anacron y at
Introduccion
El brochure del curso incluye cron/anacron y at dentro de la Unidad 5. En administracion de servidores, estas herramientas permiten automatizar:
- backups
- limpieza (logs, temporales)
- reportes
- tareas de mantenimiento
Tiempo estimado: 60-90 minutos
cron: tareas recurrentes
Editar el crontab del usuario:
BASH
1$ crontab -e- 1
- crontab -e abre el crontab del usuario actual
Listar tareas del usuario:
BASH
1$ crontab -l
30 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1- 1
- crontab -l lista tareas programadas del usuario
anacron: recuperar tareas si el equipo estuvo apagado
BASH
1$ cat /etc/anacrontab
# /etc/anacrontab: configuration file for anacron
1 5 cron.daily nice run-parts --report /etc/cron.daily
7 10 cron.weekly nice run-parts --report /etc/cron.weekly
@monthly 15 cron.monthly nice run-parts --report /etc/cron.monthly- 1
- /etc/anacrontab define tareas diarias/semanales/mensuales tolerantes a apagados
at: ejecutar una sola vez en el futuro
BASH
- 1
- at 03:00 programa una ejecucion unica a las 03:00
- 2
- atq lista jobs pendientes
- 3
- atrm elimina un job programado
Cron no tiene el mismo entorno que tu terminal.
Lo que podria salir mal: - El script falla por PATH distinto. - El job corre sin logs y no sabes por que fallo.
Como prevenirlo: 1. Usa rutas absolutas a binarios y scripts. 2. Redirige stdout/stderr a un log (>> ... 2>&1). 3. Prueba el comando manualmente antes de programarlo.
Ejemplo practico multi-SO
Linux
BASH
1$ crontab -l
30 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1- 1
- crontab -l muestra las tareas del usuario
macOS
BASH
1$ ls -1 /Library/LaunchDaemons | head -n 5
com.apple.alf.agent.plist
com.apple.atrun.plist
com.apple.backupd-auto.plist- 1
- LaunchDaemons es el mecanismo recomendado en macOS (equivalente conceptual)
Windows
POWERSHELL
1PS> Get-ScheduledTask | Select-Object -First 5 TaskName,State
TaskName State
-------- -----
\Microsoft\Windows\Defrag\ScheduledDefrag Ready
\Microsoft\Windows\UpdateOrchestrator\Schedule Scan Ready- 1
- Get-ScheduledTask lista tareas programadas
| Aspecto | Linux | macOS | Windows |
|---|---|---|---|
| Recurrente | cron/anacron | launchd | Task Scheduler |
| Una vez | at |
(launchd) | Task Scheduler |
Mejores practicas
Toda automatizacion debe ser observable.
Casos de uso: - Backups y mantenimiento.
Cuando aplicar: 1. Loguea ejecucion y errores. 2. Agrega validaciones (por ejemplo: chequear espacio antes del backup). 3. Documenta el job (que hace, donde deja logs, como desactivarlo).
Resumen
- cron automatiza tareas recurrentes.
- anacron ejecuta tareas aunque el equipo estuviera apagado.
- at programa ejecuciones unicas.