【问题标题】:Run command multiple linux server运行命令多个linux服务器
【发布时间】:2017-10-29 11:24:55
【问题描述】:

我的工作任务之一是每天检查多台 Linux 服务器的运行状况/状态。我正在考虑一种自动执行此任务的方法(无需每天登录每个服务器)。顺便说一句,我是一个新手系统管理员。最初,我的想法是设置一个可以运行脚本并通过电子邮件发送输出的 cron 作业。很遗憾,目前无法从服务器发送邮件。

我正在考虑并行运行命令,但我不知道如何。比如不一一登录服务器,如何查看df -h的输出。

【问题讨论】:

    标签: linux ssh automation


    【解决方案1】:

    您可以使用 -t 标志运行 ssh 来打开 ssh 会话,运行命令然后关闭会话。但是要让这个完全自动化,您应该自动化每个服务器的登录过程,这样您就不需要为每个服务器输入密码。

    所以要在远程服务器上运行df -h,然后关闭您将运行ssh -t root@server.com "df -h" 的会话。然后,您可以根据需要处理该输出。

    自动执行此操作的一种方法是编写一个bash script,为每个服务器运行此命令并处理输出以检查服务器的运行状况。

    有关 -t 标志或如何自动化 ssh 登录过程的更多信息。

    https://www.novell.com/coolsolutions/tip/16747.html

    https://serverfault.com/questions/241588/how-to-automate-ssh-login-with-password

    【讨论】:

      【解决方案2】:

      您可以使用 ssh 隧道或仅使用 ssh 来实现此目的。使用 ssh 隧道,您可以将输出重定向到您的机器,或者作为替代方案,您可以在您的机器上使用远程命令运行 ssh,然后也可以在您的机器上获取输出。

      请查看以下页面以进一步阅读:

      http://blog.trackets.com/2014/05/17/ssh-tunnel-local-and-remote-port-forwarding-explained-with-examples.html

      https://www.google.hu/amp/s/www.cyberciti.biz/faq/unix-linux-execute-command-using-ssh/amp/

      如果您想避免手动登录,请使用 ssh 密钥。

      【讨论】:

        【解决方案3】:

        创建文件 /etc/sxx/hosts

        像这样填充:

        [grp_ips]
        1.1.1.1
        2.2.2.2
        3.3.3.3
        

        在所有机器上共享 ssh 密钥。

        从包中安装 sxx:

        https://github.com/ericcurtin/sxx/releases

        然后像这样运行命令:

        sxx username@grp_ips "whatever bash command"
        

        【讨论】:

          猜你喜欢
          • 2018-12-08
          • 1970-01-01
          • 2023-04-07
          • 2021-08-29
          • 1970-01-01
          • 2020-11-08
          • 1970-01-01
          • 2022-11-08
          • 1970-01-01
          相关资源
          最近更新 更多