
12.03.2008, 21:15
|
|
Постоянный
Регистрация: 03.02.2007
Сообщений: 520
Провел на форуме: 1777536
Репутация:
932
|
|
2. Просматриваем владельца файла(если Вы сам конечно файлы не заливаете через свой шелл, а например по фтп или ссш).
Код:
#!/bin/bash
if [ $# < 1 ]; then
echo "Use $0 DIR USER USER2 ..."
exit 1
fi
folder=$1
users=$@
for i in ${users[@]:1}
do
find $folder -name $i
done
б) Сверка всех файлов по созданной ранее базе данных Ваших файлов.
Имхо, наиболее действенный способ
Код:
#!/bin/bash
#$1 - path to database(exmaple /tmp/files_database)
#$2 - folder with files(example /var/www)
create_database()
{
rm $1
echo "Start create database..."
find $2 -type f 2>/dev/null >> $1
echo "Done."
}
#$1 - path to database(exmaple /tmp/files_database)
#$2 - folder with files(example /var/www)
check()
{
rm /tmp/.tmpfiles
echo "Start create current files list..."
find $2 -type f 2>/dev/null >> /tmp/.tmpfiles
echo "Done."
files=`cat /tmp/.tmpfiles`
echo "Start checking current files list..."
for i in $files
do
grep $i $1 > /dev/null
if [ "$?" != "0" ]; then
echo "!!!WARRING!!! UNKNOW FILE $i"
fi
done
echo "Done."
rm /tmp/.tmpfiles
}
а) Если Вы только что закачали файлы, то запускаете алгоритм, который проиндексирует и сохранит дату модификации файла, его размер, CRC и прочее. Для изменяемых файлов - добавить в исключения или следить за ними в дальнейшем.
Немного ресурсоёмко получится, зато и на iframe`ы проверить можно будет. C использование md5sum
Код:
#!/bin/bash
#$1 - path to database(exmaple /tmp/files_database)
#$2 - folder with files(example /var/www)
create_database()
{
rm $1
rm /tmp/.tempfiles
echo "Start create files list..."
find $2 -type f 2>/dev/null >>/tmp/.tempfiles
echo "Done."
echo "Start create md5 sum database..."
files=`cat /tmp/.tempfiles`
for i in $files
do
md5sum $i 2>/dev/null >>$1
done
echo "Done."
rm /tmp/.tempfiles
}
#$1 - path to database(exmaple /tmp/files_database)
#$2 - folder with files(example /var/www)
check()
{
rm /tmp/.tmpfiles
echo "Start create current files list..."
find $2 -type f 2>/dev/null >>/tmp/.tmpfiles
echo "Done."
files=`cat /tmp/.tmpfiles`
echo "Start checking current files list..."
for i in $files
do
sum=`md5sum $i`
grep $sum $1 > /dev/null
if [ "$?" != "0" ]; then
echo "!!!WARRING!!! WRONG MD5 SUMM $i"
fi
done
echo "Done."
rm /tmp/.tmpfiles
}
Последний раз редактировалось Ky3bMu4; 12.03.2008 в 21:23..
|
|
|