2011-03-17 76 views
3

我需要創建一個bash腳本,它將連接到FTP服務器,上傳文件並關閉連接。通常這將是一件容易的事,但我需要指定一些特定的代理設置,這使得它變得困難。基於文本的FTP客戶端設置代理

我可以使用GUI客戶端即FileZilla中使用以下設置連接到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,lftp應該支持ftp_proxy環境變量,例如,

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

如果這樣的作品,你可以把

export ftp_proxy=ftp://proxy.domain.com 
在你的shell配置文件

,或者

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

你的〜/ .lftprc。

或者,嘗試運行您的GUI FTP客戶端正在運行的命令,例如,

upload.lftp

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

而且使用-s運行:

lftp -s upload.lftp 200.200.200.200 

或者嘗試curl -Tdocsncftpputdocs)。

喜歡的東西:

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

可能會奏效。

+0

Mikel:試過兩種方法沒有任何運氣,他們只是超時。我希望添加一些截圖然後可以幫助? – schone 2011-03-17 02:35:10

+0

@schone:啊,看起來它使用的是FTP代理,而不是HTTP代理。你可以嘗試使用'ftp_proxy = ftp://proxy.domain.com lftp ...'? – Mikel 2011-03-17 03:07:29

+0

Brillant!有用!我做了如下: $ export ftp_proxy = proxy.domain.com $ lftp user:[email protected] :)謝謝! – schone 2011-03-17 03:38:26