Поиск последних измененных файлов на nix-сервере
Поддерживая сайты, не редко приходится восстанавливать их работоспособность из-за не осторожных действий заказчика или его работников. Вариантов того, что можно сломать, масса и зачастую возникает необходимость отыскать какие файлы поменяли на сервере. С этой задачей всегда помогает справиться команда find
. О ней сегодня и пойдет речь.
Если проблема не с базой данных, то nix-овая команда поиска приходится как-никогда кстати. Разберем несколько полезных примеров. Найти файлы, которые были модифицированы в последние 30 минут в директории /path/to/directory
:
find /path/to/directory -type f -mmin -30
Тоже самое, но для директорий:
find /path/to/directory -type d -mmin -30
Когда проблема случилась не прямо сейчас, а несколько дней назад, то указывать удобнее будет указать не минуты, а дни. В этом случае команды преобразится в
find /path/to/directory -type f -mtime -3
Теперь случай посложнее. Правки кода осуществлялись позавчера, а вчера и сегодня загружались только работоспособные файлы. Тогда в команду поиска добавляется диапазон. Следующая команда выведет все измененные файлы за 3 дня, но не включит данные за последний день:
find /path/to/directory -type f -mtime -3 ! -mtime -1
Для удобства поиска можно добавить в команду вывод времени модификации и сортировку по нему. Тогда последняя команда примет вид
find /path/to/directory -type f -mtime -3 ! -mtime -1 -printf '%TY-%Tm-%Td %TT %p\n' | sort -r
Для ограничения уровня вложенности, добавьте параметр -depth
. Например, поиск с уровнем вложенности не более 2 папок
find /path/to/directory -type f -mmin -30 -depth -2
Советую ознакомиться с полным списком команд. В этом вам поможет интернет, man find
или find --help
.
P.S. Поиск по дате модификации файла бывает полезен при поиске вредоносного кода, поэтому рекомендую запомнить эти команды или добавить ссылку в закладки.