[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: