Skript zum Suchen neuer Dateien in einem Verzeichnis und Ausführen eines Befehls

Skript zum Suchen neuer Dateien in einem Verzeichnis und Ausführen eines Befehls

Ich habe ein Verzeichnis mit mehreren oder sogar Hunderten von XML-Dateien. Ich möchte ein Skript ausführen, wenn eine neue Datei gefunden wird. Das einzige GRÖSSERE Problem ist, dass ich inotifywait oder ähnliches nicht verwenden kann. Aufgrund der eingeschränkten Installationsrechte. (Ich habe zwar die Rechte, aber aufgrund von Vereinbarungen ist es mir nicht gestattet, da es von unserem Lieferanten verwaltet wird.) Ich kann also Skripte mit den grundlegenden Linux-Tools verwenden, aber keine neuen Tools installieren. Eine zusätzliche Anmerkung: Es muss für ein ziemlich altes Betriebssystem geschrieben werden, OpenSUSE 10.2.

Hoffe, jemand kann mir helfen, mich in die richtige Richtung zu weisen.

Grüße,

Antwort1

Hier ist ein kurzes Beispiel für einfaches Bash-Scripting mit „find -newer“ in einer Schleife:

#!/bin/bash
while [ 1 ]; do
  newfiles=`find /tmp -newer /tmp/.my_marker 2>/dev/null`
  touch /tmp/.my_marker
  if [ -n "$newfiles" ]; then
    echo "found files $newfiles"
  fi
  sleep 5
done

In diesem Beispiel findet das Skript Dateien in /tmp, die sich seit der letzten Schleife geändert haben. Dabei wird die Änderungszeit von /tmp/.my_marker jedes Mal aktualisiert. Die Schleife schläft 5 Sekunden lang, bevor die nächste Prüfung erfolgt.

Die Aktion ist lediglich ein Echo der gefundenen Dateien. Sie können stattdessen Ihre eigene Aktion einfügen.

verwandte Informationen