Endy1
11-01-2010, 18:16
Это наверное простой вопрос для большинства. Но я только начинаю заниматься 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
Подскажите пожалуйста где я делаю неправильно? Или как иначе указать, чтобы он искал только в новейших файлах?
Скрипт обходит все файлы в каталоге и ищет файлы содержащие определённые символы (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
Подскажите пожалуйста где я делаю неправильно? Или как иначе указать, чтобы он искал только в новейших файлах?