Заказать сайт недорого. Создание сайта на базе системы управления контентом. Индивидуальный подход при создании сайта. Современный и красивый дизайн сайта. Удобная навигация на сайте.

palexa.pp.ua@gmail.com

(+380) 66 531 77 01 ; 67 301 39 26

Поиск файлов - как найти недавно изменённые файлы в Linux

Часто надо найти файлы, которые были недавно изменены / модифицированы или созданы за какой то промежуток времени. Например, Вы изменяли настройки системы, но забыли, где их сохранили. Или вы хотите проверить изменялись ли, ваши файлы. Что бы найти недавно измененные файлы в linux, то это можно сделать с помощью команды find.

Чтобы в Linux найти файлы, которые недавно изменены, необходимо ввести команду, которая отсортирует файлы в обратном порядке (последний измененный, будет показан первым):

find /etc -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort -r

Ответ будет примерно таким:

2015-05-20 00:50:36.0000000000 /etc/resolv.conf
2015-05-18 23:22:57.0000000000 /etc/ld.txt
2012-04-10 22:29:14.0000000000 /etc/shadow{/code}

Эта команда выведет файлы в директории /etc (и её поддиректориях) в обратном порядке по времени их изменения, вместе с их расположением в файловой системе и временем последнего изменения. Если также хотите проверить директории, надо опустить опцию "-type f".

Поиск файлов, которые были изменены за последние 60 минут в директории /my_dir и во всех ее поддиректориях:

find /my_dir -type f -mmin -60

Поиск файлов, которые были изменены за последние 2 дня в директории /my_dir и во всех ее поддиректориях:

find /my_dir -type f -mtime -2

Можно добавить тип файла по расширеню php

find . -type f -name '*.php' -mtime -2

Поиск файлов, которые были изменены в последние 2 дня в директории /my_dir и ее поддиректориях глубиной до 3 уровня:

find /my_dir -type f -mtime -2 -depth -3

Вы также можете задать диапазон времени модификации. Поиск файлов, которые были изменены в последние 7 дней, но не позднее чем 3 дня назад:

find /my_dir -type f -mtime -7 ! -mtime -3

Эти команды выводят путь к найденным файлам. Но также можно детализировать вывод информации с помощью опции "-exec".

Поиск файлов в директории /my_dir (и во всех ее поддиректориях), которые были модифицированы в последние 60 минут с выводом атрибутов файлов:

find /my_dir -type f -mmin -60 -exec ls -al {} \;

Так же вы можно использовать для этого команду xargs:

find /my_dir -type f -mmin -60 | xargs ls -l

Эти команды также найдут файлы, созданные в заданный промежуток времени.

Поиск фойлов в текущем каталоге, которые содержит определённый текст, например файлы *.php с текстом eval, base64_decode, gzinflate

find . -type f -name '*.php' | xargs grep -l "eval *(" --color
find . -type f -name '*.php' | xargs grep -l "base64_decode *(" --color
find . -type f -name '*.php' | xargs grep -l "gzinflate *(" --color

Первая точка означает текущий каталог (и все вложенные каталоги). Это можно изменить, например:

find wp-admin -type f -name '*.php' | xargs grep -l "gzinflate *(" --color

Если удалить опцию -l из grep, то будет показывать текст совпавшего файла. Можно воспользоваться объединенной командой, она является более общей. Следующая команда будет искать php файлы содержащие eval(str_rot13(base64_decode(

Синтаксис grep  вы можете изменить его под свои требования. Это выражение, по которому мы ищем, это "eval *(str_rot13 *(base64_decode *("

find . -type f -name '*.php' | xargs grep -l "eval *(str_rot13 *(base64_decode *(" --color

или другой текст, такой как mail, fsockopen, pfsockopen, stream_socket_client, exec, system и passthru

find . -type f -name '*.php' | xargs egrep -i "(mail|fsockopen|pfsockopen|stream_socket_client|exec|system|passthru|eval|base64_decode) *\("

Можно провести поиск файлов, по критерию, что было и что стало. То есть отличия от оригинала. Например поиск файлов изменённых в движке сайта на предмет вредоносного кода

Допустим есть две папки joomla-clean, которая содержит оригинальную ранее установленную копию joomla и joomla-compr, которая содержит угрозу где-то в файлах.

Можно найти различия в папках, между установленной joomla и чистой joomla, исключив при этом папку templates, выполнив команду:

diff -r joomla-clean/ joomla-compr/ -x templates

Информация на сайте оказалась Вам полезной? Вы нашли ответ на вопрос?

Узнайте как поблагодарить меня

Добавить комментарий


Защитный код
Обновить