# [bash] monitorización archivos con inotify

## Theasker

Estoy haciendo un pequeño script para monitorizar los archivos de un servidor web y cada vez que se cree o modifique un archivo subirlo a un hosting para así crear un espejo de esa web.

```

#!/bin/bash

DIRBASE="/var/www/"

while OUTPUT=`inotifywait --format '%f' -rm -e create -e modify -e delete $DIRBASE`;do

   echo "El fichero ganador es $DIRBASE${OUTPUT}"

#   aqui van los comandos ftp para subir los archivos

done

```

para luego poder situar/eliminar el archivo cerado/modificado/borrado en su lugar tengo que saber la ruta absoluta o relativa respecto del directorio base, pero la opción --format '%f', sólo me muestra el archivo sin ruta y necesitaría la ruta completa o al menos la relativa desde el directoio base para poder acceder al archivo. No encuentro la opción en el man de inotifywait para sacar esa ruta.

Gracias anticipadas y un saludico

----------

## quilosaq

¿Qué tal añadir %w?

```
while OUTPUT=`inotifywait --format '%w%f' -rm -e create -e modify -e delete $DIRBASE`;do 
```

----------

## Theasker

Vaya, tengo que mejorar mi inglés, no entendí bien lo que decía, igual debería haberlo probado. Esa era la opción.

Ahora a ver como adapto ese path absoluto del fichero para mandarlo a hosting.

Gracias y ... perdón por la falta de comprobación

----------

## quilosaq

Aquí tienes un script de ejemplo que utiliza un cambio de path absoluto a relativo:

```
#!/bin/sh

# get the current path

CURPATH=`pwd`

inotifywait -mr --timefmt '%d/%m/%y %H:%M' --format '%T %w %f' \

-e close_write /tmp/test | while read date time dir file; do

       FILECHANGE=${dir}${file}

       # convert absolute path to relative

       FILECHANGEREL=`echo "$FILECHANGE" | sed 's_'$CURPATH'/__'`

       rsync --progress --relative -vrae 'ssh -p 22'  $FILECHANGEREL usernam@example.com:/backup/root/dir && \

       echo "At ${time} on ${date}, file $FILECHANGE was backed up via rsync"

done
```

Fuente:

https://github.com/rvoicilas/inotify-tools/wiki#wiki-info

----------

