基于文本的FTP客户端设置在代理之后

我需要创build一个连接到FTP服务器的bash脚本,上传文件并closures连接。 通常这将是一个容易的任务,但我需要指定一些特定的代理设置,这是很难的。

我可以使用GUI客户端(即Filezilla)使用以下设置连接到FTP:

Proxy Settings -------------- FTP Proxy : USER@HOST Proxy Host: proxy.domain.com Proxy User: blank Proxy Pass: blank 

代理设置

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

FTP设置

我似乎无法做到的是复制这些设置在基于文本的FTP客户端即ftp,lftp等任何人都可以帮助设置这个脚本?

提前致谢!

根据文档 , 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 ...@... 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 

可能会工作。