Wie kann ich auf ankommende Dateien achten, wenn inotifywait nicht verfügbar ist?

Wie kann ich auf ankommende Dateien achten, wenn inotifywait nicht verfügbar ist?

Ich habe ein Verzeichnis, in das geschrieben wird, wenn andere Maschinen Dateien per FTP senden. Ich möchte etwas einrichten, das erkennt, wenn Dateien ankommen, und wenn ihr Dateiname eine bestimmte Teilzeichenfolge enthält (wie „jpg“), verschiebt die Datei in ein anderes Verzeichnis (erst nachdem die Datei angekommen ist, nicht vorher).

Ich möchte dies auf vielen verschiedenen Linux-Rechnern implementieren. Einer dieser Rechner hat den Linux-Kernel 2.4.22. Es ist möglich, dass es auch ältere gibt. Ich prüfe das noch.

Auf den älteren Maschinen sehe ich Folgendes: inotifywait: command not found.

Ich habe auch das hier gesehen:The inotify API is available in Linux 2.6.13 and later

Und das:bash: watch: command not found

Ideen in POSIX sh oder bash oder C könnten funktionieren. Perl und Python sind wahrscheinlich nicht überall verfügbar, wo ich dies ausführen möchte. Ich habe keine Berechtigung zum Installieren von Paketen.

Antwort1

Ich habe dieses Perl-Programm vor langer Zeit geschrieben, das Ihnen den Einstieg erleichtern könnte, wenn Sie es verstehen. Es verwendet die Inotify-Funktion im Kernel.

http://www.win2ix.ca/2013/05/31/606/

Sie müssen den Code von der Synchronisierung bis zur Ausführung der gewünschten Aktionen ändern, aber im Wesentlichen ist alles vorhanden.

Ich weiß, dass Sie ein Problem mit Perl haben, aber ich wollte Ihnen das nur für den Fall geben.

Falls es hilft, hier ist eine Demo, wie es mit C geht

http://man7.org/tlpi/code/online/diff/inotify/demo_inotify.c.html

verwandte Informationen