⚙️ Automatización

Sistema de Alertas y Notificaciones

Configure notificaciones automatizadas para eventos del sistema, cambios en archivos y recordatorios programados

★☆☆ Principiante 15 min 13 de enero de 2025

Caso de Uso

Mantenerse informado sobre eventos importantes sin monitoreo constante es esencial. Cowork puede ayudar a configurar sistemas de notificación que le alerten cuando se cumplan condiciones específicas.

Ejemplo de Prompt

Quiero configurar notificaciones automatizadas en mi Mac. Por favor, cree:

1. Monitoreo de archivos:
   - Alertar cuando se agregue cualquier archivo a ~/Downloads
   - Alertar cuando ~/Documents/Important cambie

2. Alertas del sistema:
   - Notificar si el uso de disco supera el 80%
   - Alertar cuando un proceso específico se detenga

3. Recordatorios programados:
   - Recordatorio de standup diario a las 9:45 AM
   - Recordatorio de respaldo semanal los domingos

Cree los scripts y configuraciones de launchd. Guarde en ~/Scripts/notifications/

Qué Hace Cowork

  1. Configuración de Monitores: Crea observadores de archivos y sistema
  2. Configuración de Alertas: Configura notificaciones nativas
  3. Definición de Horarios: Crea trabajos launchd/cron
  4. Generación de Scripts: Escribe scripts de monitoreo
  5. Documentación: Proporciona instrucciones de configuración

Salida de Ejemplo

#!/bin/bash
# download_watcher.sh - Monitorear carpeta de Descargas

WATCH_DIR="$HOME/Downloads"
LOG_FILE="$HOME/Scripts/notifications/download.log"

fswatch -0 "$WATCH_DIR" | while read -d "" event; do
    filename=$(basename "$event")

    # Omitir descargas parciales
    if [[ "$filename" == *.crdownload ]] || [[ "$filename" == *.part ]]; then
        continue
    fi

    # Omitir archivos ocultos
    if [[ "$filename" == .* ]]; then
        continue
    fi

    # Enviar notificación
    osascript -e "display notification \"$filename\" with title \"Nueva Descarga\" sound name \"Glass\""

    # Registrar el evento
    echo "$(date '+%Y-%m-%d %H:%M:%S') - Nuevo archivo: $filename" >> "$LOG_FILE"
done
#!/bin/bash
# disk_check.sh - Monitorear uso de disco

THRESHOLD=80

# Obtener porcentaje de uso de disco (macOS)
USAGE=$(df -h / | awk 'NR==2 {gsub(/%/,""); print $5}')

if [ "$USAGE" -gt "$THRESHOLD" ]; then
    osascript -e "display notification \"Uso de disco al ${USAGE}%\" with title \"Advertencia: Espacio en Disco\" sound name \"Basso\""

    # Opcional: Abrir Finder para ayudar a limpiar
    # open ~/Downloads
fi
#!/bin/bash
# standup_reminder.sh - Recordatorio de standup diario

osascript <<EOF
display dialog "¡Standup Diario en 15 minutos!

Prepare:
- Lo que hice ayer
- Lo que haré hoy
- Cualquier bloqueo" with title "Recordatorio de Standup" buttons {"Descartar", "Abrir Notas"} default button "Descartar"

if button returned of result is "Abrir Notas" then
    tell application "Notes" to activate
end if
EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <!-- com.user.standup-reminder.plist -->
    <key>Label</key>
    <string>com.user.standup-reminder</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/you/Scripts/notifications/standup_reminder.sh</string>
    </array>
    <key>StartCalendarInterval</key>
    <dict>
        <key>Hour</key>
        <integer>9</integer>
        <key>Minute</key>
        <integer>45</integer>
    </dict>
    <key>RunAtLoad</key>
    <false/>
</dict>
</plist>

Instalación

# Instalar fswatch para monitoreo de archivos
brew install fswatch

# Cargar servicios de launchd
launchctl load ~/Library/LaunchAgents/com.user.standup-reminder.plist
launchctl load ~/Library/LaunchAgents/com.user.disk-check.plist

# Iniciar observador de descargas en segundo plano
nohup ~/Scripts/notifications/download_watcher.sh &

Consejos

  • Use notificaciones nativas para alertas importantes
  • Considere integrar con Slack/Discord para alertas remotas
  • Mantenga la frecuencia de notificaciones razonable
  • Agregue sonido para alertas críticas