我需要创建一个bash脚本,它将连接到FTP服务器,上传文件并关闭连接。通常这将是一项简单的任务,但我需要指定一些特定的代理设置,这使得它很难。
我可以使用GUI客户端连接到FTP,例如Filezilla,具有以下设置:
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,lftp等。任何人都可以帮助设置此脚本吗?
提前致谢!
答案 0 :(得分: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 ...@...
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
可能有用。