Ich möchte jede Minute einen Cronjob ausführen, um alle Dateien zu ermitteln, die in letzter Minute in einem bestimmten Verzeichnis (mit etwa 300.000 Inodes) geändert wurden, und diese Dateiliste in einen CSV zu exportieren.Cronjob zum Erkennen der zuletzt geänderten Dateien
Ist es möglich, einen optimierten Befehl auszuführen, um das zu tun? Ich kann kein "find" mit sort flag in diesem Verzeichnis ausführen, da es riesig ist und es wahrscheinlich mehr als 1 Minute dauern wird, bis alle Dateien laufen.
Gibt es einen Befehl, den ich tun kann? Oder führen Sie ein bestimmtes Programm im Hintergrund des Servers aus, der jede geänderte Datei protokolliert, wenn sie geändert wird? Wenn es einen Befehl gibt, der PHP dazu verwendet, bin ich in Ordnung, ich kann ein Cron erstellen, um ein PHP-Skript auszuführen, kein Problem.
Wenn find nicht funktioniert, dann ist wahrscheinlich IO der Engpass, also ist es irrelevant, wenn Sie 'find' oder eine andere Methode verwenden, um die mtime der Dateien zu bestimmen. Konzentriere dich auf eine Methode, um deinen IO zu verbessern. – Ctx
Was schreibt die Dateien? Kann es dort gemacht werden? – Martin
Verwenden Sie 'incrtab'. Es funktioniert wie normale "Crontab" außer bei Dateiereignissen (z. B. einer Änderung): http://manpages.ubuntu.com/manpages/intrepid/man5/incrontab.5.html –