2011-03-17 3 views
3

FTP 서버에 연결하고 파일을 업로드하고 연결을 종료하는 bash 스크립트를 만들어야합니다. 일반적으로 이것은 쉬운 작업이지만 특정 프록시 설정을 지정해야하므로 어렵게 만듭니다.프록시 기반의 텍스트 기반 FTP 클라이언트 설정

나는 다음과 같은 설정으로 예에서 Filezilla에 GUI 클라이언트를 사용하여 FTP 벌금에 연결할 수 있습니다 내가 할 수없는 것 무엇

Proxy Settings 
-------------- 
FTP Proxy : [email protected] 
Proxy Host: proxy.domain.com 
Proxy User: blank 
Proxy Pass: blank 

Proxy Settings

FTP Settings 
------------ 
Host : 200.200.200.200 
Port : 21 
User : foo 
Pass : bar 

FTP Settings

이 설정을 텍스트 기반 ftp 클라이언트 (예 : ftp, lftp 등) 내에서 복제합니다. 누구든지이 스크립트를 설정하는 데 도움이 될 수 있습니까?

미리 감사드립니다.

답변

4

docs에 따르면, lftpftp_proxy 환경 변수를 지원해야합니다.

ftp_proxy=ftp://proxy.domain.com lftp -c "cd /upload; put file" ftp://200.200.200.200 

이 작동하는 경우, 당신은 당신의 ~/.lftprc에

set ftp:proxy=ftp://proxy.domain.com 

export ftp_proxy=ftp://proxy.domain.com 
쉘 구성 파일의

, 또는

을 넣을 수 있습니다.

또는 GUI FTP 클라이언트가 실행중인 명령을 실행 해보십시오.

upload.lftp

USER [email protected] 
PASS ... 
PUT ... 

그리고 -s를 사용하여 실행

lftp -s upload.lftp 200.200.200.200 

또는 시도 curl -T (docs) ncftpput (docs). 같은

뭔가 :

FTP_PROXY=ftp://proxy.domain.com curl -T uploadfile -u foo:bar ftp://200.200.200.200/myfile 

가 작동하지 않을 수 있습니다.

+0

Mikel : 시간 낭비없이 두 가지 방법을 모두 시도했습니다. 잘하면 다음 도울 수있는 몇 가지 스크린 샷을 추가 했습니까? – schone

+0

@schone : 아, HTTP 프록시가 아닌 FTP 프록시를 사용하고있는 것처럼 보입니다. 'ftp_proxy = ftp : //proxy.domain.com lftp ...'를 사용해 볼 수 있습니까? – Mikel

+0

Brillant! 그것은 작동합니다! 나는 다음과 같이했다 : $ export ftp_proxy = proxy.domain.com $ lftp user : [email protected] :) 고마워! – schone