我在設置腳本時遇到了一些問題。一個小背景:用於檢查遠程服務器進程的Perl腳本
腳本的功能是從服務器列表中讀取,這些服務器位於由::分隔的文本文件中,登錄到服務器,檢查以查看mysql是否正在運行並報告回來。該文件配置,使每一行有:服務器名:: IP地址::端口號
我遇到的問題是,我認爲perl試圖連接我所饋送的IP地址到我有代碼。任何人都可以指出我的方向正確嗎?
#!/usr/bin/perl
use strict;
use warnings;
open(FH, '<', 'serverlist_test') or error("Cannot open file , ($!)");
while (my $line = <FH>) {
our ($name, $ip, $port) = split(/::/, $line);
my $version = &MySQL_check($ip, $port);
}
close FH;
sub MySQL_check {
my $issue = `ssh -t [email protected]"$_[0]" -p$"_[1]" 'ps axco command | grep -i mysql'`;
print $issue;
if ($issue =~ /mysql/) {
return "Mysql found";
} else {
return "Mysql not found";
}
}
我在做什麼錯?
謝謝。
它看起來像你正在錄製的SSH端口,而不是代碼TSQL正在運行的端口。 –
你好弗蘭克,這是我在bash中編寫的一個更大的腳本的一部分,並且正在轉換爲perl;有很多檢查只能通過ssh完成,並在遠程服務器上運行,我的防火牆關閉了所有其他端口。 – Roncioiu