No sé cómo las personas están cargando contenido a esta carpeta, pero es posible que desee utilizar algo de tecnología más baja que la supervisión del directorio con inotify.
Si el protocolo es FTP y tiene acceso al registro de su servidor FTP, le sugiero que rastree ese registro para ver las cargas exitosas. Este tipo de enfoque desencadenado por eventos será más rápido, más confiable y con menos carga que un método de sondeo con cron tradicional, y más portátil y más fácil de depurar que algo que use inotify.
Por supuesto, la forma de manejar esto dependerá de su servidor FTP. Tengo uno corriendo vsftpd cuyos registros incluir líneas de la siguiente manera:
Fri May 25 07:36:02 2012 [pid 94378] [joe] OK LOGIN: Client "10.8.7.16"
Fri May 25 07:36:12 2012 [pid 94380] [joe] OK UPLOAD: Client "10.8.7.16", "/path/to/file.zip", 8395136 bytes, 845.75Kbyte/sec
Fri May 25 07:36:12 2012 [pid 94380] [joe] OK CHMOD: Client "10.8.7.16", "/path/to/file.zip 644"
La línea UPLOAD
sólo se pone añadido cuando vsftpd ha guardado correctamente el archivo. Se podría analizar esto en un script de shell como esto:
#!/bin/sh
tail -F /var/log/vsftpd.log | while read line; do
if echo "$line" | grep -q 'OK UPLOAD:'; then
filename=$(echo "$line" | cut -d, -f2)
if [ -s "$filename" ]; then
# do something with $filename
fi
fi
done
Si estás usando una herramienta de carga HTTP, ver si esta herramienta tiene un archivo de registro de texto se utiliza para grabar los archivos entrantes. Si no considera agregarle algún tipo de función de registrador, entonces generará registros que puede tail
.
http://stackoverflow.com/questions/10366411/linux-triggering-shell-command-on-file-save –