Мы пытаемся отказаться от нашего старого сервера домашних папок Linux. Однако у нас все еще есть несколько человек, которые активно его используют. Мы планируем изменить домашние папки, которые никто не использовал в течение последних шести месяцев, только для чтения. У нас есть клиенты Mac и Windows, которые получают доступ к этим общим ресурсам через SMB.
Итак, мой вопрос: есть ли команда, которая сообщит мне, когда в последний раз был изменен каталог или любой из его подкаталогов?
Или
Список родительских каталогов, которые были изменены с определенной даты?
Это подскажет мне, какие пользователи все еще активно используют свои домашние папки.
Проблема, с которой вы можете столкнуться, заключается в том, что изменение файла в каталоге не обязательно приводит к изменению метки времени каталога. Вот пример:
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
Обратите внимание, как полная замена содержимого test1 не обновила отметку времени каталога. Таким образом, ваша команда find, вероятно, должна искать файлы, а также каталоги, примерно так:
find . -mtime +180 -print0 | xargs -0 chmod a-w
Или вы можете изменить временные критерии для файлов и каталогов:
find . -type d -mtime +120 -print0 | xargs -0 chmod a-w
find . -type f -mtime +180 -print0 | xargs -0 chmod a-w
Для многих (большинства?) Приложений, использующих общие файловые ресурсы SMB, это неприменимо, потому что они обычно записывают свое содержимое во временный файл в том же каталоге, затем удаляют исходный файл, а затем переименовывают временный файл в имя оригинала. Но приложения «базы данных», такие как Access, этого не делают.