使用sendcmd函数时net / ftp出错

时间:2011-08-20 07:21:27

标签: ruby

我是红宝石的新手。我用net / ftp来访问远程文件。我需要执行命令并从远程机器获取结果。我怎么能这样做?

我尝试过以下方式,

#!/usr/bin/ruby
require 'rubygems'
require 'net/ftp'
require 'fileutils'

URL = 'ip'
username = 'name'
passwd = "pass"

directory = 'path'
filename = 'file'

  ftp=Net::FTP.new
  ftp.connect(URL,21)
  ftp.login(username,passwd)
  ftp.chdir(directory)
  ftp.sendcmd("fuser filename")
  ftp.close

It throw the following error,

   /usr/lib/ruby/1.8/net/ftp.rb:243:in `getresp': 500 Unknown command. (Net::FTPPermError)
        from /usr/lib/ruby/1.8/net/ftp.rb:264:in `sendcmd'
        from /usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
        from /usr/lib/ruby/1.8/net/ftp.rb:262:in `sendcmd'
        from connection.rb:20

我该如何解决这个错误?请对此提出一些建议..

1 个答案:

答案 0 :(得分:0)

在我找到你的问题后,我刚刚找到你问题的答案:

要发出特定于站点的命令,请在命令前添加“站点”:

ftp.sendcmd("SITE fuser #{filename}")