需要从perl中的远程机器获取Oracle和MySQL的版本



我对Perl非常陌生。我被告知要编写一个脚本,其中我只有远程机器的IP地址。我试图通过IP地址ping机器为:

$retval=system("ping xxx.xxx.x.xxx");
if ($retval==0) {
print "It pingsn";
} else {
print "ping failedn";
}
  1. 现在我想知道那台机器(xxx.xxx.x.xxx(中操作系统的版本,无论是WindowsServer 2019还是任何Linux版本
  2. 想知道数据库的版本,无论该机器的版本是Oracle还是MySql
  3. 想知道它是否安装了Weblogic Server或IIS服务器,如果安装了什么版本

我希望将操作系统及其版本的名称、数据库及其版本以及服务器版本的名称保存在文件中。有人能帮助我使用Perl脚本成功地实现这一点吗?

提前谢谢。

与其使用像ping这样的外部程序,不如考虑使用Net::Ping模块,它是Perl安装的标准部分。

简介:

use Net::Ping;
$p = Net::Ping->new();
print "$host is alive.n" if $p->ping($host);
$p->close();

至于获取更多信息,我支持使用Net::OpenSSH的建议。在评论中,你说你不能使用它,因为它没有安装在你的远程系统上,但我认为你误解了它的工作原理。该模块只需要安装在本地系统上即可。远程系统只需要一个ssh服务器。

或者,您可以查看Net::SNMP或Nmap::Parser。

为了获得远程操作系统的版本,我想你没有太多的解决方案:

  • 使用扫描仪(例如nmap(可以进行TCP扫描,"可能"会将操作系统名称/版本发回(可能有Perl模块可以做到这一点,但您也可以通过Perl抛出常规系统命令来完成

  • 远程连接到机器(根据操作系统,使用该机器上支持的协议,如SSH或类似协议(,并运行系统命令(如*nix机器上的"uname"(以获取操作系统版本。使用这种方法,您还可以收集其他任何东西(数据库、中间件等(但这意味着你知道如何连接到另一台机器(而且你知道操作系统…(。

最新更新