Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Linux и FreeBSD » Программирование в *nix » [решено] find -newer

Ответить
Настройки темы
[решено] find -newer

Пользователь


Сообщения: 96
Благодарности: 2

Профиль | Отправить PM | Цитировать


Это наверное простой вопрос для большинства. Но я только начинаю заниматься bash-скриптингом, поэтому никак не найти правильный вариант.

Скрипт обходит все файлы в каталоге и ищет файлы содержащие определённые символы (R5hb66d6f7idj). Причём искать он должен только в файлах новее контрольного kontrol_date. В контрольном файле просто дата последнего запуска этого скрипта.

Код: Выделить весь код
failid=`find /srv/virtual_2/ -newer "cat kontrol_date"  -exec grep -q "R5hb66d6f7idj" '{}' \; -print`
Всё вроде в порядке, кроме параметра -newer "cat kontrol_date"
Похоже я его неправильно задаю. Что-то с синтаксисом не то?

На всякий случай весь скрипт:

Код: Выделить весь код
LOG="/root/infected-website-check/logifailike"
cat=/bin/cat
echo `/bin/date` | cat  > kontrol_date
failid=`find /srv/virtual_2/ -newer $cat kontrol_date  -exec grep -q "R5hb66d6f7idj" '{}' \; -print`

for fail in $failid; do
echo -n $fail " : "  >> $LOG
cat "$fail" | grep "R5hb66d6f7idj" >> $LOG
echo ""  >> $LOG
done
cat $LOG | grep "R5hb66d6f7idj"

if  [ -s $LOG ]
then
/usr/bin/mail -s "Обнаружен вредоносный код" name@domen.ru < $LOG
fi

rm $LOG

Подскажите пожалуйста где я делаю неправильно? Или как иначе указать, чтобы он искал только в новейших файлах?

Отправлено: 18:16, 11-01-2010

 

Аватара для ruslandh

info man howto


Сообщения: 6958
Благодарности: 384

Профиль | Сайт | Отправить PM | Цитировать


1. Наверное всё-же
-newer kontrol_date

Цитата man find:
-newer file
File was modified more recently than file. If file is a sym‐
bolic link and the -H option or the -L option is in effect, the
modification time of the file it points to is always used.

-------
Поспешай не торопясь


Отправлено: 02:47, 12-01-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Пользователь


Сообщения: 96
Благодарности: 2

Профиль | Отправить PM | Цитировать


Вот что в итоге у меня получилось:

find /srv/virtual_2/ \( -newer $kontrol \) -not -iname "*_log" -not -iname "*sess*" \( ! -path "*/usage/*" \) -iname "*" -exec grep -q "R5hb66d6f7idj" '{}' \; -print

Отправлено: 16:42, 01-02-2010 | #3



Компьютерный форум OSzone.net » Linux и FreeBSD » Программирование в *nix » [решено] find -newer

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Утилиты - [addon] Find Target dimich22 Наборы обновлений для Windows XP/2003/Windows 7 29 28-01-2013 08:43
EF Find 5.40 OSZone Software Новости программного обеспечения 0 07-01-2010 15:30
Find and Run Robot 2.80.01 OSZone Software Новости программного обеспечения 0 21-11-2009 19:30
Windows 7 \ Couldn't find BOOTMGR extrimz Хочу все знать 6 17-04-2009 12:05
Процесс find грузит сервер Gangabass Общий по FreeBSD 4 07-06-2007 21:24




 
Переход