답변:
일반적으로 ftp를 올바르게 처리하는 wget을 사용할 수 있습니다 (적어도 내 경험으로는). 예를 들면 다음과 같습니다.
wget -r ftp://user:pass@server.com/
-m
미러링에 적합한 것을 사용할 수도 있습니다 . 현재와 동일합니다 -r -N -l inf
.
신임 정보에 특수 문자가있는 경우 --user
및 --password
인수를 지정하여 작동시킬 수 있습니다. 특정 문자를 사용한 사용자 정의 로그인 예 :
wget -r --user="user@login" --password="Pa$$wo|^D" ftp://server.com/
편집
@asmaier가 지적했듯이 -r
재귀 용 인 경우에도 기본 최대 수준은 5입니다.
-r --recursive Turn on recursive retrieving. -l depth --level=depth Specify recursion maximum depth level depth. The default maximum depth is 5.
하위 디렉토리를 놓치지 않으려면 미러링 옵션을 사용하는 것이 좋습니다 -m
.
-m --mirror Turn on options suitable for mirroring. This option turns on recursion and time-stamping, sets infinite recursion depth and keeps FTP directory listings. It is currently equivalent to -r -N -l inf --no-remove-listing.
wget -m
( --mirror
). wget -r
기본적으로 재귀 깊이는 5로 제한됩니다.
--user
과 --password
너무 레드햇에. 내 wget은 : GNU Wget 1.11.4 Red Hat modified
나는 그것이 버전이나 배포판인지 궁금합니다 ...
-l 0
을 사용하여 무한 재귀 수준을 설정할 수 있으므로 --mirror
.listing 파일과 같은 원하지 않는 부작용이 발생할 수 있습니다.
wget --ask-password -rl 99 ftp://user@server.com
합니다. 이렇게하면 암호가 보이지 ps
않으며 기록에 남아 있지 않습니다. 물론 ftp의 특성상 암호화되지 않은 서버로 전송됩니다.
$
예 --user='user' --password='pa$$word'
Thibaut Barrère의 답변을 보완하기 위해.
나는 사용했다
wget -r -nH --cut-dirs=5 -nc ftp://user:pass@server//absolute/path/to/directory
서버 이름 뒤에 이중 슬래시가 있습니다. 추가 슬래시를 넣지 않으면 경로는 사용자의 홈 디렉토리를 기준으로합니다.
-nH
서버 이름을 딴 디렉토리를 만들지 않습니다.-nc
대상에 이미 존재하는 경우 새 파일을 만들지 않습니다 (단지 건너 뜁니다) --cut-dirs=5
/ absolute / path / to / directory의 내용을 가져 와서 wget을 시작하는 디렉토리에 넣을 수 있습니다. 숫자 5는 경로의 5 개 구성 요소를 필터링하는 데 사용됩니다. 이중 슬래시는 추가 구성 요소를 의미합니다.--ftp-user=USER
및 을 사용할 수 있습니다 --ask-password
.
ncftp -u <user> -p <pass> <server>
ncftp> mget directory
open ftp://USERNAME:PASSWORD@HOST
ncftp를 시작한 후 구조를 사용하여 …
wget
TAR 모드 보다 확실히 신뢰할 수 있고 빠릅니다. 감사!
경우 lftp
컴퓨터 사용에 설치됩니다 mirror dir
. 그리고 당신은 끝났습니다. 디렉토리를 재귀 적으로 다운로드하려면 아래 Ciro의 설명을 참조하십시오.
mirror -R dir
재귀 디렉토리 업로드 / 업데이트 수행
mirror ./
현재 경로에서 모든 파일과 폴더를 재귀 적으로 다운로드하는 데 사용할 수 있습니다 .
mirror
현재 디렉토리와 하위 폴더에 대해을 입력 해도됩니다.
당신이 사용할 수있는 경우 scp
대신 ftp
의 -r
옵션을 사용하면이 작업을 수행합니다. FTP보다 최신 파일 전송 메커니즘을 사용할 수 있는지 확인합니다.
scp
여전히 FTP 자격 증명이있는 경우 작동하지 않는 ssh를 사용하려고 시도합니다. 내가 함께 붙어있어 기술을 말하는 2008 코멘트에 응답 이상한 기분이 :( 현대 된 2008 좋지 않다, 나는 당신이 당신의 코멘트를 게시 한 날에 (18)를 돌았 다.
대신 WGet을 사용하십시오. HTTP 및 FTP 프로토콜을 지원합니다.
wget -r ftp://mydomain.com/mystuff
행운을 빕니다!
리눅스에서 설치할 수있는 'ncftp'가 있습니다. 이것은 FTP 프로토콜에서 작동하며 파일과 폴더를 재귀 적으로 다운로드하는 데 사용할 수 있습니다. 리눅스에서 작동합니다. 재귀 폴더 / 파일 전송에 사용되었으며 정상적으로 작동합니다.
이 링크를 확인하십시오 ... http://www.ncftp.com/
사용해서는 안됩니다 ftp
. telnet
보안 프로토콜을 사용하지 않는 것처럼 암호는 일반 텍스트로 전송됩니다. 이를 통해 타사에서 사용자 이름과 비밀번호를 매우 쉽게 캡처 할 수 있습니다.
원격 디렉토리를 원격으로 복사하려면 다음 옵션이 더 좋습니다.
rsync
는 ssh
차이점 만 복사하고 연결이 끊어 질 경우 쉽게 중간에 다시 시작할 수 있기 때문에 를 통해 로그인 할 수있는 경우 가장 적합한 도구 입니다.
ssh -r
디렉토리 구조를 재귀 적으로 복사하는 두 번째로 좋은 옵션입니다.
보다:
mget
. 재귀 적이 지 않습니다. 이해하기 쉽게 9시 1분의 Thibaut 바레에 9월 22일 08에서 대답하지만, 옵션을 추가해야합니다-l 0
코멘트에서 언급 한 바와 같이