4

Прямо сейчас я использую python, чтобы выяснить файлы, которые были изменены за последний час. Это очень медленно в моей сети (~ 50000 файлов - и проверка метки времени каждого). У меня есть собственный скрипт, которому я передаю этот список - он выполняет некоторые операции передачи / входа в систему / etc на удаленном сервере.

Я хочу, чтобы ускорить время создания списка файлов (это займет ~ 15-20 минут, чтобы просто выяснить список файлов). Какие-либо предложения?

Одна вещь, которая может быть полезна, это то, что в сети есть файл-файл netapp Этот файлер создает эти каталоги .snapshot. Можно ли как-то подключиться к файлеру (через API?) и выяснить список, который недавно изменился?

Если вы не знакомы с NetApp API, предложения о том, как создать список файлов (быстро!) с командами unix было бы здорово! (Кстати, это сетевая файловая система - поэтому будет несколько машин, вносящих изменения).

1 ответ1

4

Просто используйте find:

find /path/to/dir/ -mmin -61

Соответствующие варианты:

   -mmin n
          File's data was last modified n minutes ago.
   Numeric arguments can be specified as

   +n     for greater than n,

   -n     for less than n,

   n      for exactly n.

Итак, -mmin -61 означает «найти файлы, которые были изменены менее 61 минуты назад», другими словами, те, которые были изменены за последний час.

Возможно, вы захотите использовать и эти параметры, они ускорят поиск, но я не знаю, подходят ли они, это будет зависеть от вашей настройки:

  • -maxdepth 1 : не спускаться в подкаталоги.
  • -type f : искать только обычные файлы, без каталогов и т. д.

Я только что выполнил эту команду на своем ноутбуке (i7,2,6 ГГц) в каталоге, содержащем 78353 случайно сгенерированных файла (то есть даты модификации также случайны). Чтобы вернуть список из 51 файла, измененных за последний час, потребовалось менее одной секунды .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .