LINUX.ORG.RU

Индексатор содержимого FTP-сервера


0

1

В локальной сети есть какое-то количество всё ещё живых FTP-ресурсов с кучей файлов. Хочется быстрый поиск по имени файла по списку этих серверов. Да хотя бы пусть банально текстовый файл генерируется вида:

ftp://server/path/to/file
Что бы можно было обычным грепом по нему пройтисть и отдать выхлоп wget Поиск по репозитарию Дебиана результата не дал. Да, можно написать скрипт на Питоне, но может уже готовое есть?

★★★★★

ну вот вам скрипт:

FILE_LIST="/dev/stdout"

function scan_dir()
{
	local CURRENT_PATH="$1"
	local TMP=`mktemp`
	lftp -c "open $HOST; login $LOGIN $PASSWORD; cd $CURRENT_PATH; ls -lA" > $TMP
	err=$?
	# cat $TMP
	if [ $err == 0 ]; then
		while read STR; do
			# echo "$STR"
			A=( $STR )
			MODE=${A[0]}
			TYPE=${MODE::1}
			SIZE=${A[4]}
			DATE="${A[5]}-${A[6]}-${A[7]}"
			NAME="${A[8]}"
			if [ "$TYPE" == "-" ]; then
				# обычный файл
				echo "$SIZE	$DATE	$CURRENT_PATH/$NAME" >> $FILE_LIST
			elif [ $TYPE == "d" ]; then
				# каталог
				scan_dir "$CURRENT_PATH/$NAME"
				err=$?
				if [ $err != 0 ]; then
					break
				fi
			else
				# НЁХ
				:
			fi
		done < $TMP
	fi
	rm --force $TMP
	return $err
}

scan_dir "."

работает. Только ещё симлинки надо пройти. Но это уж сами...

drBatty ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.