linux - 用于检查远程服务器进程的 Perl 脚本

标签 linux perl scripting

我设置的脚本有点问题。一点背景:

脚本的功能是从以::分隔的文本文件中读取服务器列表,登录到服务器,检查 mysql 是否正在运行并返返回告。该文件的配置使得每一行都有:Servername::Ip address::port number

我遇到的问题是,我认为 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 root@"$_[0]" -p$"_[1]" 'ps axco command | grep -i mysql'`;
    print $issue;
    if ($issue =~ /mysql/) {                                                                             
      return "Mysql found"; 
    } else {                                                                                             
       return "Mysql not found";                                                                         
    }                                                                                                    
}

我做错了什么?

谢谢。

最佳答案

my $issue = `ssh -t root@"$_[0]" -p$"_[1]" 'ps axco command | grep -i mysql'`;

看看

-p$"_[1]"

应该是

-p "$_[1]"

关于linux - 用于检查远程服务器进程的 Perl 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13278738/

相关文章:

javascript - 递归运行使用 XMLHttpRequest 下载的 JavaScript

java - 是否有可编写脚本的 Java 工具可以在运行的 JVM 上执行垃圾收集?

bash - Bash 脚本中的多个 If 语句

c++ - Makefile 不会展开依赖

linux - Chromium进程监控方法?如果崩溃重新启动

arrays - 如何绕过 Perl 中 foreach 循环的范围

perl - 如何创建内部(私有(private))Moose 对象变量(属性)?

perl - 为什么这些时间戳与 Perl Time::HiRes 不一致?

linux - 尝试在 Linux 中启动 Tomcat 时不是目录错误

c - mmap 内存由其他内存支持吗?