Re: поиск в ftp
Abbas Khusainov пишет:
помогите новичку с поиском файла на удаленном ftp сервере( > 8 level & >10000 files ).
хочу просканировать локальные ftpишники и потом знать в каком сервере нужный мне файл.
есть, какой либо пакет, для Debian который делал бы индексацию ftp сервера и потом делал поиск в данной базе данных.
или же укажите мне путь в решении проблемы, плиз.
Я недавно решал аналогичную задачу для 3-х фтп.
Не знаю, на сколько это красиво, но всё-же:
Запихиваешь на серверах в крон демонов, которые ищут и одного главного, который
собирает всё в базу.
Привожу самого главного демона.
#cat ftp-cron.cgi
#!/bin/sh
#ftp-cron
#ищем и грепом выбрасываем всё лишнее. Хотя где-то в man про find я видел что
#есть ключик для исключения пути
find /home/ftp -type f -printf "%h/\t%f\t%TY-%Tm-%Td %TT\t%u\t%g\t%s\n" | grep
-v ^'/home/ftp/backup' | awk '{print "ftp.server2.com\t"substr($0,10)}'
>/root/ftp.server2.mysql.txt
#забираем с остальных серверов то, что нарыли другие демоны
wget -q 'ftp://user:password@server1/ftp.server1.mysql.txt.gz'
wget -q 'ftp://user:password@server3/ftp.server3.mysql.txt.gz'
#распаковываем
gunzip -f ftp.server1.mysql.txt.gz
gunzip -f ftp.server3.mysql.txt.gz
#собираем в кучу
cat ftp.server1.mysql.txt > all.ftp.mysql.txt
cat ftp.server2.mysql.txt >> all.ftp.mysql.txt
cat ftp.server3.mysql.txt >> all.ftp.mysql.txt
#и втыркиваем в mysql
mysql -u user -ppassword -e "LOAD DATA INFILE '/root/all.ftp.mysql.txt' INTO
TABLE database.ftp";
#end of ftp-cron.cgo
#и вот моя табличка для mysql (права не собираю - они мне не нужны - но добавить
#не сложно - man find)
CREATE TABLE `ftp` (
`server` char(64) NOT NULL default '',
`dir` char(255) NOT NULL default '',
`name` char(255) NOT NULL default '',
`datefile` datetime NOT NULL default '0000-00-00 00:00:00',
`uname` char(8) NOT NULL default '',
`ugroup` char(8) NOT NULL default '',
`size` bigint(20) unsigned NOT NULL default '0'
)
PS: ну а поиск уже прикрутить несложно..
--
WBR, Dmitrii
ICQ: 193-74-771
Phone: +375-29-40-LINUX
Reply to: