我正在运行一个使用 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 主机名时它失败了,但是,当我 ping IP 地址时它起作用了。
但是,如果我将 db["host"]/ftp["host"] 设置为远程服务器的 IP 地址,我会收到此错误:
The requested service provider could not be loaded or initialized. - socket(2)
我很难找到有关如何调试它的任何信息,所以如果有人有任何想法,他们将不胜感激。
提前致谢。