Нужно получить версии Oracle и MySQL с удаленного компьютера в perl - PullRequest
0 голосов
/ 30 апреля 2020

Я очень новичок в Perl. Мне сказали написать скрипт, в котором у меня есть только IP-адрес удаленной машины. Я попытался пропинговать компьютер через IP-адрес как:

$retval=system("ping xxx.xxx.x.xxx");
if ($retval==0) {
    print "It pings\n";
} else {
    print "ping failed\n";
}
  1. Теперь я хочу узнать версию операционной системы на этом компьютере (xxx.xxx.x.xxx), является ли она WindowsServer 2019 или любой другой версии Linux с его версией.
  2. Хотите узнать версию базы данных, независимо от того, имеет ли эта машина Oracle или MySql с ее версией.
  3. Хотите узнать установлен ли на нем сервер Weblogi c или сервер IIS и, если он установлен, какая у него версия.

Я хочу указать имя ОС и ее версию, а также имя БД и ее версию. вместе с версией сервера для сохранения в файл. Может кто-нибудь, пожалуйста, помогите мне достичь этого успешно, используя Perl Script?

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 30 апреля 2020

Чтобы получить версию удаленной ОС, я думаю, у вас не так много решений:

  • с использованием сканера (например, nmap), который может сделать TCP сканирование, которое может «вероятно» отправить вам имя / версию ОС обратно (вероятно, для этого есть Perl модулей, но вы также можете выдавать обычные системные команды через perl, чтобы сделать это

  • подключиться к машине удаленно (используя поддерживаемый протокол на этой машине, такой как S SH или аналогичный, в зависимости от ОС ..) и запустить системные команды (такие как «uname» на машинах * nix), чтобы получить ОС версия. используя этот метод, вы также можете собрать что-нибудь еще (база данных, промежуточное программное обеспечение и т. д. c.), но это означает, что вы знаете, как подключиться к другому компьютеру (и что вы знаете ОС .. в целом).

3 голосов
/ 30 апреля 2020

Вместо использования внешней программы, такой как ping, вам следует рассмотреть возможность использования модуля Net :: Ping , который является стандартной частью установки Perl.

Из краткого описания:

use Net::Ping;

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

Что касается получения дополнительной информации, я предлагаю использовать Net :: OpenS SH. В комментарии вы говорите, что не можете использовать это, так как он не установлен в ваших удаленных системах, но я думаю, что вы неправильно понимаете, как это работает. Модуль должен быть установлен только в вашей локальной системе. Удаленным системам просто необходим сервер ssh.

В качестве альтернативы вы можете посмотреть на Net :: SNMP или Nmap :: Parser .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...