2010-06-09 8 views
26

FTP 서버에서 다른 서버의 호스팅에 이르기까지 모든 것을 다운로드해야합니다. 파일을 다운로드 할 서버에만 쉘 액세스 권한이 있습니다. Linux FTP 명령을 사용하여 어떻게 모든 파일을 다운로드하여 프로세스에 필요한 디렉토리를 만들 수 있습니까? 이러한 방식으로FTP 서버에서 모든 파일 다운로드

답변

53

사용 wget (미러링 m) : 사용자 이름이나 비밀번호에 특수 문자가 포함 된 경우

wget -m ftp://username:[email protected] 

, 당신은 형식을 사용해야 할 수도 있습니다 : 또는

wget -m --user=username --password=password ftp://ip.of.old.host 

을 나는 발견 this guide은 데비안에서 ncftp를 사용하는 방법을 보여줍니다. ncftp가 이미 설치되어 있지 않으면 새 서버에 대한 루트 액세스가 필요합니다. 한마디로

:

sudo apt-get install ncftp 
ncftpget –T –R –v –u "ftpuser" ftp.nixcraft.net /home/vivek/backup /www-data 
+0

감사합니다. 나는 이것을 실제로 발견하기 바로 전에 실제로 그것을 발견했다. 처음 5 번 올바른 Google 검색어를 사용하지 않았습니까? – Navarr

+3

"잘못된 포트"라는 오류 메시지가 나타나면 사용자 이름 (인터넷이 이상하게 보임)으로 이메일 주소가 있고 @은 혼란스러운 wget입니다. 시도해보십시오. wget -m --user [email protected] --password myPassword ftp://example.com –

+0

암호 끝에 '@'이 있으면 작동하지 않습니다. 대안이 있습니까? –

1

서버를 .tar 또는 .TGZ 자신의 이름을 부기 전체 디렉토리를 다운로드 할 수 있도록 일부 FTP. 그런 다음 서버는 해당 디렉토리의 아카이브를 작성합니다.

1

또 다른 방법은 ftp을 사용하는 것입니다. 다음은 ftp를 사용하는 쉘 스크립트 예제입니다 :

#! /bin/bash 

ftp -n << 'EOF' 
open ftp.your_ftp_host.com 
quote USER your_username_here 
quote PASS your_password_here 
cd gets 
prompt no 
mget * . 
bye 
EOF 
관련 문제