⚙️ Automatización
Generador de Tareas Programadas
Cree y administre tareas programadas con la sintaxis cron correcta y scripts de shell
★★☆ Intermedio 15 min 13 de enero de 2025
Caso de Uso
Configurar tareas programadas requiere entender la sintaxis cron y escribir scripts confiables. Cowork puede ayudar a generar trabajos cron correctamente formateados con sus scripts correspondientes.
Ejemplo de Prompt
Necesito configurar varias tareas programadas en mi Mac:
1. Diario a las 2 AM: Respaldar ~/Documents en disco externo
2. Cada lunes a las 9 AM: Generar informe semanal desde ~/Data/logs/
3. Cada 6 horas: Sincronizar carpeta local con un servidor remoto
4. Primero de cada mes: Archivar archivos antiguos (>90 días) de ~/Downloads
Por favor:
- Genere las entradas de cron
- Cree los scripts de shell para cada tarea
- Incluya registro de errores
- Guarde todo en ~/Scripts/scheduled/
Qué Hace Cowork
- Análisis de Horarios: Convierte requisitos a expresiones cron
- Generación de Scripts: Crea scripts de shell para cada tarea
- Manejo de Errores: Agrega registro y notificaciones de errores
- Documentación: Genera instrucciones de configuración
- Creación de Archivos: Guarda scripts y entradas de crontab
Salida de Ejemplo
# ~/Scripts/scheduled/crontab_entries.txt
# Respaldo diario a las 2 AM
0 2 * * * /Users/you/Scripts/scheduled/daily_backup.sh >> /var/log/backup.log 2>&1
# Informe semanal cada lunes a las 9 AM
0 9 * * 1 /Users/you/Scripts/scheduled/weekly_report.sh >> /var/log/reports.log 2>&1
# Sincronización cada 6 horas
0 */6 * * * /Users/you/Scripts/scheduled/sync_remote.sh >> /var/log/sync.log 2>&1
# Archivo mensual el día 1 a las 3 AM
0 3 1 * * /Users/you/Scripts/scheduled/monthly_archive.sh >> /var/log/archive.log 2>&1
#!/bin/bash
# ~/Scripts/scheduled/daily_backup.sh
set -e
LOG_PREFIX="[$(date '+%Y-%m-%d %H:%M:%S')] RESPALDO:"
BACKUP_SRC="$HOME/Documents"
BACKUP_DST="/Volumes/ExternalDrive/Backups"
BACKUP_NAME="documents_$(date '+%Y%m%d').tar.gz"
echo "$LOG_PREFIX Iniciando respaldo..."
if [ ! -d "$BACKUP_DST" ]; then
echo "$LOG_PREFIX ERROR: Destino de respaldo no montado"
exit 1
fi
tar -czf "$BACKUP_DST/$BACKUP_NAME" -C "$HOME" Documents
# Mantener solo los últimos 7 respaldos
cd "$BACKUP_DST"
ls -t documents_*.tar.gz | tail -n +8 | xargs -r rm
echo "$LOG_PREFIX Respaldo completado: $BACKUP_NAME"
Referencia de Sintaxis Cron
┌───────────── minuto (0 - 59)
│ ┌───────────── hora (0 - 23)
│ │ ┌───────────── día del mes (1 - 31)
│ │ │ ┌───────────── mes (1 - 12)
│ │ │ │ ┌───────────── día de la semana (0 - 6)
│ │ │ │ │
* * * * *
Consejos
- Pruebe los scripts manualmente antes de programarlos
- Use rutas absolutas en los scripts
- Incluya manejo de errores apropiado
- Considere usar
launchden macOS para mayor control - Agregue notificaciones por correo para fallos