
Wir versuchen, unseren alten Linux-Home-Ordner-Server abzuschaffen. Wir haben jedoch immer noch ein paar Leute, die ihn aktiv nutzen. Unser Plan ist, Home-Ordner, die in den letzten sechs Monaten niemand genutzt hat, auf schreibgeschützt umzustellen. Wir haben Mac- und Windows-Clients, die über SMB auf diese Freigaben zugreifen.
Meine Frage lautet also: Gibt es einen Befehl, der mir sagt, wann ein Verzeichnis oder eines seiner Unterverzeichnisse zuletzt geändert wurde?
Oder
Eine Liste der übergeordneten Verzeichnisse, die seit einem bestimmten Datum geändert wurden?
Dadurch erfahre ich, welche Benutzer ihre Home-Ordner noch aktiv verwenden.
Antwort1
Ein Problem, auf das Sie stoßen könnten, ist, dass das Ändern einer Datei in einem Verzeichnis nicht unbedingt den Zeitstempel des Verzeichnisses ändert. Hier ist ein Beispiel:
paulgear@localhost:~/tmp$ echo test1 > test1
paulgear@localhost:~/tmp$ ls -la
total 4
drwxr-xr-x 1 paulgear paulgear 18 Jan 15 09:29 .
drwxr-xr-x 1 paulgear paulgear 3976 Jan 15 09:26 ..
drwxr-xr-x 1 paulgear paulgear 0 Jan 15 09:29 test
-rw-r--r-- 1 paulgear paulgear 6 Jan 15 09:29 test1
paulgear@localhost:~/tmp$ date
Wed Jan 15 09:30:07 EST 2014
paulgear@localhost:~/tmp$ echo test2 > test1
paulgear@localhost:~/tmp$ ls -la
total 4
drwxr-xr-x 1 paulgear paulgear 18 Jan 15 09:29 .
drwxr-xr-x 1 paulgear paulgear 3976 Jan 15 09:26 ..
drwxr-xr-x 1 paulgear paulgear 0 Jan 15 09:29 test
-rw-r--r-- 1 paulgear paulgear 6 Jan 15 09:30 test1
Beachten Sie, dass der vollständige Ersatz des Inhalts von test1 den Zeitstempel des Verzeichnisses nicht aktualisiert hat. Ihr Suchbefehl sollte also wahrscheinlich sowohl nach Dateien als auch nach Verzeichnissen suchen, etwa so:
find . -mtime +180 -print0 | xargs -0 chmod a-w
Oder Sie möchten vielleicht für Dateien und Verzeichnisse unterschiedliche Zeitkriterien festlegen:
find . -type d -mtime +120 -print0 | xargs -0 chmod a-w
find . -type f -mtime +180 -print0 | xargs -0 chmod a-w
Für viele (die meisten?) Anwendungen, die SMB-Dateifreigaben verwenden, gilt dies nicht, da sie ihren Inhalt normalerweise in eine temporäre Datei im selben Verzeichnis schreiben, dann die Originaldatei löschen und die temporäre Datei wieder in den Namen der Originaldatei umbenennen. Aber „Datenbank“-Anwendungen wie Access tun dies nicht.