Liste der geänderten Dateien der letzten 24 Stunden

7

Gibt es eine zuverlässige Möglichkeit, ein System zu haben, das mir die Liste der Dateien, die in den letzten 24 Stunden geändert wurden, in einer Reihe von Verzeichnissen per E-Mail sendet? (wie /home/*/public_html/*und /home/*/*domains/*)

Wahnsinn
quelle
Im Moment verwende ich / usr / bin / find / home / * / public_html / -ctime 0 -type f (-name * .php -fprint php_files, -name * .js -fprint javascript_files), muss ich ändern Es enthält das Verzeichnis der Subdomains und Addon-Domains und strukturiert sie mit Zeitstempeln, damit ich sie leichter überprüfen kann.
Wahnsinn

Antworten:

9

Wenn Sie die Dateien suchen möchten, die innerhalb der letzten 24 Stunden geändert wurden, ist dies der richtige Weg.

find /usr/bin/find /home/*/public_html/ -ctime 0 -type f -print0 | mailx -s "Summary of the modified files in past 24hours" my_mail_address

Wenn Sie das gleiche finden möchten, dann mit in den letzten 24 Stunden-48 Stunden dann

find /usr/bin/find /home/*/public_html/ -ctime 1 -type f -print0 | mailx -s "Summary of the modified files in last 2 days" my_email_address

ctime 0 0 bedeutet innerhalb der letzten 24 Stunden, 1 bedeutet in den letzten 24 und 48 Stunden, 2 bedeutet zwischen 48 und 72 Stunden usw.

Sie können einen täglichen Cronjob einrichten, der möglicherweise am Ende der Arbeitszeit oder zu Beginn des Tages ausgeführt wird. Oder beide, um zu wissen, welche Dateien während des Arbeitstages geändert wurden und welche, wenn Sie nicht in der Nähe sind.

Nikhil Mulley
quelle
Funktioniert das * für ein Unterverzeichnis von / home? - Ich brauche es, um mit / home / foo / public_html / zu arbeiten, aber nicht mit / home / foo / bar / public_html /. Außerdem muss ich es irgendwie auf / home / foo / addon_domains / * und / home / foo / subdomains laufen lassen / * --- Auch der Cron-Manager meines Systems kann mir automatisch eine Mail mit der Ausgabe senden, so dass die Rohrleitungen vereinfacht werden.
Wahnsinn
Ja, es würde nicht für / home / foo / bar / public_html funktionieren. da * die unmittelbaren Ergebnisse oder Dateien aus dem relativen Arbeitsverzeichnis der Shell globalisiert. Sie könnten möglicherweise eine weitere Befehlszeile für add_domains und Subdomains hinzufügen. Alternativ würde ich für einen besseren Ansatz eine Liste der Verzeichnisse erstellen, die ich zum Suchen und Ausführen des Befehls find in loop für jedes Verzeichnis in der Liste benötige. Probieren Sie es aus, lassen Sie mich wissen, wenn Sie einen Prototyp benötigen.
Nikhil Mulley
1
Sind Sie sicher, dass Sie -print0 dort haben möchten? Wird das Mailx nicht verwirren?
Folkert van Heusden
Ich gebe die E-Mail-Idee auf, vor allem, weil das Ablegen in eine Datei mir eine Art Verlauf geben könnte und ich die Daten verwenden könnte, um schließlich grafisch darzustellen, was ich visualisieren muss. Dies eröffnet die Möglichkeit, mehrere Befehle auszuführen, die Dateien zusammenzusetzen und schließlich zu sortieren.
Wahnsinn
1
ctimeist die Inode-Änderungszeit. Möglicherweise möchten Sie mtime(Änderungszeit). Beachten Sie, dass Benutzer diese Zeitstempel überschreiben können. Programme wie tar(beim Extrahieren) tun dies routinemäßig. Wenn Sie sicher sein möchten, müssen Sie Prüfsummen verfolgen. Betrachten Sie Tripwire, Samhain usw.
derobert