我正在尝试从Debian 8下的命令行连接到Filezilla服务器(ms windows主机)。
我搜索了大量文档,并看到了大量教程,它们说,在一行中连接到服务器的一个好方法是:
ftp -in ftp://myusername:mypasswd@ip.v4.addr.here
当我运行此命令时,ftp不进行连接,并得到以下错误:
ftp: ftp://myusername:mypasswd@ip.v4.addr.here: Name or service not known
有人知道这是怎么回事吗?我需要指定什么端口吗?(服务器正在监听端口21)
我的目标是编写一个简短的bash脚本来上传
我有一个Ruby线程,它首先连接到FTP服务器,然后上传数千个文件。由于一些连接问题,Ruby线程经常挂起。所以我想为ftp空闲设置一个超时。
post 建议使用超时模块:
begin
Timeout.timeout(10) do
// connect to FTP and upload
end
rescue Timeout::Error
...
end
这种方法不会解决我的问题,因为超时是针对整个计算块的,而不是从FTP会话的空闲/不活动开始的超时。
那么我该怎么做呢?
我尝试了以下规则来允许FTP:
# The following two rules allow the inbound FTP connection
iptables -A INPUT -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
# The next 2 lines allow active ftp connections
iptables -A INPUT -p
我正在写一个脚本,将文件从FTP服务器(智能手机)移动到本地,当前目录。我的代码如下: ftp = FTP()
ftp.connect(host='192.168.0.24', port=2121, timeout=5)
ftp.login()
ftp.cwd('MIUI/sound_recorder/call_rec')
for filename in ftp.nlst(): # get filenames within the directory:
if filename not in ['.', '..']:
我有点困惑。我正在尝试使用端口22进行FTP。它说我是连接的,然后我不是连接的。下面是我的输出:
dan@voldemort:~$ ftp $hname 22
Connected to <hostname>.
SSH-2.0-OpenSSH_5.1
ftp> ls
Not connected.
到底怎么回事?是不是因为我在使用端口22?我知道它是ssh端口,但这就是我使用它的原因。
编辑:我想知道发生了什么。我对其他传输文件的方式不感兴趣,比如FTP客户端。我也在寻找一个命令行解决方案。我正在运行Ubuntu。