Команда Unix для поиска обновленных и вновь добавленных файлов / папок - PullRequest
1 голос
/ 17 августа 2011

Мне нужно выяснить список файлов или папок, которые были добавлены / обновлены в пути файловой системы (/home/user01/myapps/) между двумя разными периодами времени (время начала и окончания сценариев).

Я запускаю сценарии оболочки для обновления / добавления новых файлов в путь к ресурсу /home/user01/myapps/ из другого источника. Итак, в конце скриптов я хочу узнать список файлов или папок, которые были добавлены или обновлены.

У меня есть команда ниже

find / opt / app / tds / tdsbatch -mtime -1

Но я не уверен насчет времени выполнения скрипта.

Любая помощь действительно!

Ответы [ 2 ]

4 голосов
/ 18 августа 2011

Для записи времени в любой нужный момент:

# record the current time in seconds on script startup
start_time=$(date +%s)
...
# do whatever you like
...
# to get the runtime in secods - if you like:
runtime=$(($(date +%s) - start_time))
# to get the runtime in minutes (minutes are useful for -mmin find param)
runtime=$((($(date +%s) - start_time) / 60))
...
# to record the finish time in seconds:
end_time=$(date +%s)

и теперь find в соответствии с вашими потребностями. что-то вроде

find /path \( -mmin $((-($(date +%s) - start_time) / 60)) \
  -a $((($(date +%s) - end_time) / 60)) \)
  • первый -mmin аргумент указывает , измененный через (текущее время - время запуска скрипта) минуты назад
  • второй -mmin аргумент указывает , измененный до (текущее время - время окончания скрипта) минуты назад
  • оба они связаны с параметром -a и заключены в префиксные скобки

Возможно, вы могли бы сделать с этим. В противном случае мне нужно больше разъяснений о ваших потребностях.

0 голосов
/ 18 августа 2011

В начале скрипта вы можете использовать сенсорную команду для любого существующего файла или создать фиктивный файл.

, например

запуск скрипта

touch filename1 - изменится отметка времени filename1 на текущее время

Затем в конце скрипта вы можете использовать следующую команду:

найти имя каталога -nerer filename1

Это даст все файлы, измененные или созданные после отметки времени filename1 в этом каталоге

...