You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何测量RHEL机器通过SSH远程登录的耗时

测量RHEL机器SSH登录耗时的实现方法

完全可以实现SSH登录耗时的测量,以下是针对RHEL环境的具体实现方案:

核心实现思路

通过在发起SSH连接前后记录时间戳,计算两者差值得到登录耗时,同时使用SSH的批量模式避免交互干扰,确保计时准确。

1. 基础版脚本(秒级精度)

适合批量测量machine_1到machine_100的登录耗时,前提是machine_Y已配置免密登录到所有目标机器:

#!/bin/bash
# 遍历目标机器列表
for host in machine{1..100}; do
    # 记录开始时间(秒级)
    start_time=$(date +%s)
    # 发起SSH连接并执行空命令(验证登录成功)
    if ssh -o BatchMode=yes -o ConnectTimeout=10 "$host" true; then
        # 记录结束时间并计算耗时
        end_time=$(date +%s)
        elapsed=$((end_time - start_time))
        echo "ssh time until login to $host was $elapsed sec"
    else
        echo "Failed to login to $host"
    fi
done

2. 进阶版脚本(毫秒级精度)

如果需要更精确的计时,可以使用纳秒级时间戳计算:

#!/bin/bash
for host in machine{1..100}; do
    start_time=$(date +%s%N)
    if ssh -o BatchMode=yes -o ConnectTimeout=10 "$host" true; then
        end_time=$(date +%s%N)
        # 转换为毫秒
        elapsed_ms=$(( (end_time - start_time) / 1000000 ))
        # 输出秒+毫秒格式
        echo "ssh time until login to $host was $((elapsed_ms/1000)).$((elapsed_ms%1000)) sec"
    else
        echo "Failed to login to $host"
    fi
done

关键参数说明

  • BatchMode=yes:禁用SSH的交互模式,避免弹出密码输入提示,确保计时不受人工操作影响
  • ConnectTimeout=10:设置连接超时时间(单位:秒),防止因网络问题导致脚本长时间卡住

前置准备

在machine_Y上执行以下命令完成免密登录配置(批量操作可结合循环):

ssh-copy-id machine1
# 循环示例:
for host in machine{1..100}; do ssh-copy-id "$host"; done

内容的提问来源于stack exchange,提问作者Judy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 19:39:19