Para mirar eventos conectados con el kernel: inotify

Queremos recoger eventos en un directorio si se crean ficheros. Por ejemplo en la carpeta uploads de un webserver donde se suben fotos. Instalamos inotify

apt-get install inotify-tools

Lanzamos el listener de los eventos, se queda la ventana esperando

inotifywait -m /dades/web/htdocs/vino.lobo99.info/timelapse4/uploads/
Setting up watches.
Watches established.

Al subir el fichero, vemos que escrive esto:

/dades/web/htdocs/vino.lobo99.info/timelapse4/uploads/ CREATE 20210415_190128_timelapse3.jpg
/dades/web/htdocs/vino.lobo99.info/timelapse4/uploads/ OPEN 20210415_190128_timelapse3.jpg
/dades/web/htdocs/vino.lobo99.info/timelapse4/uploads/ MODIFY 20210415_190128_timelapse3.jpg
/dades/web/htdocs/vino.lobo99.info/timelapse4/uploads/ MODIFY 20210415_190128_timelapse3.jpg
/dades/web/htdocs/vino.lobo99.info/timelapse4/uploads/ MODIFY 20210415_190128_timelapse3.jpg
/dades/web/htdocs/vino.lobo99.info/timelapse4/uploads/ CLOSE_WRITE,CLOSE 20210415_190128_timelapse3.jpg

Para caputar esos eventos instalamos incron que en vez de depender de horas, depende de eventos de inotify

Para poder usuarlo, tenemos que poner el nombre del usuario en el fichero

/etc/incron.allow

He aƱadido esto para girar una foto

/dades/web/htdocs/vino.lobo99.info/timelapse4/uploads	IN_CLOSE_WRITE	[[ ! $# == r_* ]] && [[ $# == *jpg ]] && convert /dades/web/htdocs/vino.lobo99.info/timelapse4/uploads/$# -rotate 90 /dades/web/htdocs/vino.lobo99.info/timelapse4/uploads/r_$# && mv /dades/web/htdocs/vino.lobo99.info/timelapse4/uploads/$# /dades/web/htdocs/vino.lobo99.info/timelapse4/uploads/originales

errores

Si nos da este error:

Apr 21 11:14:45 docker incrond[55216]: cannot create watch for user root: (28) No space left on device

https://github.com/ar-/incron/issues/37