我正在运行一个使用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)
我很难找到有关如何调试此信息的任何信息,因此如果有人有任何想法,我们将非常感激。
提前致谢。
答案 0 :(得分:0)
事实证明,该脚本是从不同的用户远程运行的,而不是在本地运行时。我不确定导致问题的环境变化是什么,但是一旦我们将远程实例设置为与本地一样的用户运行一切正常。