2011-07-27 15 views
1

私は比較的単純なスクリプトが動作しています。スクリプト内の何も変わらず、私はruby 1.8.6を使用しています。無効な引数エラー

require 'net/ftp' 
ftp = Net:: FTP.new(ip) 
ftp.login(user=name,passwd=pass) 
ftp.chdir(pathHere) 
ftp.gettextfile('onhandapt.txt', File.basename('onhandapt.txt')) 
ftp.close 

は、私は私が正常にログインし、さらには現在のディレクトリを取得するためにftp.listコマンドを発行することができIRBでの手順を実行しているから知っているが、スクリプトが失敗したところftp.chdirです。 irbでは、ftp.chdirコマンドは 'nil'を生成します。サーバー上のパスをダブルチェックします。

スクリプトはこのエラーを生成します。 C:/ruby/lib/ruby/1.8/net/ftp.rb:211:readline': Invalid argument (Errno::EINVAL) from c:/ruby/lib/ruby/1.8/net/ftp.rb:211:in getlineの」 でのCから:/ruby/lib/ruby/1.8/net/ftpを.rb:221:in getmultiline' from c:/ruby/lib/ruby/1.8/net/ftp.rb:235:in getresp ' from c:/ruby/lib/ruby/1.8/net/ftp.rb:251:voidresp' from c:/ruby/lib/ruby/1.8/net/ftp.rb:274:in voidcmd' c:/ruby/lib/ruby/1.8/monitor.rb :242:synchronize' from c:/ruby/lib/ruby/1.8/net/ftp.rb:290:in sendport ' from c:/ruby/lib/ruby/1.8/net/ftp.rb:298:makeport' from c:/ruby/lib/ruby/1.8/net/ftp.rb:329:in transfercmd' c:/ruby/lib/ruby/1.8/net/ftp.rb :421:in retrlines' from c:/ruby/lib/ruby/1.8/monitor.rb:242:in ' をc:/ruby/lib/ruby/1.8/net/ftp.rb:419:retrlines' from c:/ruby/lib/ruby/1.8/net/ftp.rb:518:inから取得するgettextfile'

アイデアを歓迎します。

+0

実際にターゲットディレクトリに入ることができることを確認するために手動ftp-clientを試しましたか?私。何らかの権限の問題やそれに類する問題に対処していないということです。 – Casper

答えて

0

はpathHereが有効なパス名とnilの

+0

パスは正しいです。私のスクリプトでは、実際にftp.chdir( 'live/www')を発行します。 irbでは、ftp.chdir( 'live')を発行すると私は踏み出すことができます。 – Mike

0

に設定されていないが、それを考え出し含まれていることを確認します。オフィスネットワークの変更がありました。このコマンドで設定できるパッシブモードを使用する必要があります。ftp.passive=true