2

Ruby/MySQL と net/ftp を使用する ruby​​ スクリプトを実行しています。スクリプトは Windows Vista ボックスで実行されており、同じリモート Solaris サーバーへのデータベースおよび ftp 接続を作成しようとしています。

コードの要点は次のとおりです。

require 'mysql'
require 'net/ftp'

dbh = Mysql.real_connect(db["host"], db["user"], db["pass"], db["name"])
ftp = Net::FTP.new(ftp["host"])

ここで、Vista ボックスからスクリプトを実行すると、すべてが正常に動作します。ただし、スクリプトは NRPE を介してさらに別のサーバーから呼び出されており、そのときにエラーが発生します。

db["host"]/ftp["host"] をリモート サーバーの完全修飾ドメイン名と等しく設定すると、次のようなエラーが表示されます。

getaddrinfo: no address associated with hostname.

そのエラーを受け取った後、スクリプトからサーバーにpingを実行しようとしましたが、ホスト名にpingを実行しようとすると失敗しましたが、IPアドレスにpingを実行すると機能しました.

しかし、db["host"]/ftp["host"] をリモート サーバーの IP アドレスに設定すると、次のエラーが発生します。

The requested service provider could not be loaded or initialized. - socket(2)

これをデバッグする方法に関する情報を見つけるのに苦労しているので、誰かアイデアがあれば大歓迎です。

前もって感謝します。

4

1 に答える 1

0

スクリプトは、ローカルで実行されたときとは異なるユーザーからリモートで実行されていたことが判明しました。問題の原因となった環境の変更について正確にはわかりませんが、リモートインスタンスをローカルと同じユーザーとして実行するように設定すると、すべてが正常に機能しました.

于 2009-10-29T20:06:23.233 に答える