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
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