Monitoreo de carpetas de archivos

1

Tengo la tarea de crear una forma de monitorear una carpeta y archivos que se ejecutan en una máquina MacOS 10.11.

Básicamente, lo que quiero lograr es que cada vez que se agrega un nuevo archivo a la carpeta envíe una notificación a una URL de monitoreo y si después de 30 minutos no se agregan archivos, se activará una alerta.

Soy nuevo en la programación de Mac OS, pero me encargaron este proyecto y solo busco algunas sugerencias sobre cómo lograrlo.

Jonathan Alden
fuente
No agregó detalles sobre el alcance previsto aquí. El monitoreo de carpetas se puede hacer con Acciones de carpeta y AppleScript / Automator, o con herramientas como Hazel, las preguntas en esta dirección son sobre el tema.
nohillside
La intención es que tengamos una carpeta que tenga archivos entrantes y queremos saber potencialmente cuándo no se han movido nuevos archivos a la carpeta en un período de tiempo específico.
Jonathan Alden
Entonces, ¿qué sucederá con la alerta? ¿Es necesario que se la muestre al usuario o necesita activar algún otro procesamiento?
nohillside
Enviaría una notificación a deadmanssnitch.com que enviaría una alerta por correo electrónico
Jonathan Alden
Luego investigaríamos manualmente por qué no se han procesado archivos
Jonathan Alden,

Respuestas:

1

Supongo que tiene la intención de construir algo por su cuenta. Las cosas para mirar aquí son

  • launchd: Permite ejecutar programas / scripts en función de ciertas condiciones. Probablemente sea de especial interés para usted el WatchPathsparámetro que permite ver una ruta / directorio en busca de cambios y desencadena un programa / script si es necesario. Aquí hay condiciones de carrera, pero para su caso, probablemente pueda atraparlas fácilmente. El formato completo para los archivos de configuración de launchd está disponible conman launchd.plist
  • Scripting de shell / bash: el código a ejecutar si llega un archivo probablemente no sea demasiado complejo, por lo que algunos scripts básicos deberían ser suficientes
  • ¿Cómo enviar un correo electrónico desde la línea de comandos?

Pensándolo bien, ignoraría la WatchPathsparte por completo. Simplemente use launchdpara ejecutar un script de shell cada 30 minutos (o lo que sea apropiado) que, si no ha llegado ningún archivo nuevo desde siempre, envía una notificación a donde sea.

nohillside
fuente