Ich weiß nicht, wie Leute Inhalte in diesen Ordner hochladen, aber Sie möchten vielleicht etwas niedrigeres als die Überwachung des Verzeichnisses mit inotify verwenden.
Wenn das Protokoll FTP ist und Sie Zugriff auf das Protokoll Ihres FTP-Servers haben, empfehle ich, dieses Protokoll zu verfolgen, um nach erfolgreichen Uploads zu sehen. Dieser ereignisgesteuerte Ansatz ist schneller, zuverlässiger und weniger belastend als ein Polling-Ansatz mit herkömmlichem cron und portabler und einfacher zu debuggen als etwas, das inotify verwendet.
Die Art, wie Sie damit umgehen, hängt natürlich von Ihrem FTP-Server ab. Ich habe einen laufenden vsftpd deren Protokolle enthalten Zeilen wie diese:
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"
Die UPLOAD
Linie wird nur hinzugefügt, wenn vsftpd die Datei erfolgreich gespeichert wurde. Sie könnten dies in einem Shell-Skript wie folgt analysieren:
#!/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
Wenn Sie ein HTTP-Upload-Tool verwenden, sehen, ob das Werkzeug eine Textprotokolldatei hat es eingehende Dateien aufzeichnen verwendet zu. Wenn es nicht in Betracht zieht, eine Art Logger-Funktion hinzuzufügen, so wird es Protokolle erzeugen, die Sie tail
können.
http://stackoverflow.com/questions/10366411/linux-triggering-shell-command-on-file-save –