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

SSH远程连接脚本需按Ctrl+C才执行touch问题及修改建议

问题解决:SSH执行远程命令卡住无响应的修正方案

核心问题分析

你的脚本中ssh执行远程df -h时卡住,本质是SSH默认会从当前终端读取标准输入,导致脚本挂起等待输入,必须手动中断才能继续。添加-t -t强制分配终端反而可能在无交互场景下引发更多问题,不是正确的解决方向。

可行修改方案

方案1:禁用SSH的标准输入读取(最直接)

给SSH添加-n参数,该参数会自动将SSH的标准输入重定向到/dev/null,避免它等待输入:

#!/bin/bash
if ssh -o StrictHostKeyChecking=no -n userid@serverip 'df -h'; 
then
  echo "Conn Success"
  # 注意:以下操作是在本地执行,如果你要操作远程目录,需看方案3
  array12=(
          /home/uid/test
          /home/uid/test1
          /home/uid/test/ght
       )

   for dir in "${array12[@]}";do
      # 修正逻辑:目录不存在时先创建目录,否则touch会失败
      if [[ ! -d "$dir" ]]
      then
        mkdir -p "$dir" && touch "$dir/testfile123.txt"
      else
        echo "Failed to create file under dir: $dir"
      fi
  done
 exit

else
  echo "Failure to connect"
  exit 1
fi

方案2:添加超时机制,防止无限挂起

如果担心远程连接或命令执行超时,可以加上ConnectTimeout和ServerAliveInterval参数,强制超时退出:

ssh -o StrictHostKeyChecking=no -n -o ConnectTimeout=10 -o ServerAliveInterval=5 userid@serverip 'df -h'
  • ConnectTimeout=10:连接超时10秒
  • ServerAliveInterval=5:每5秒发送一次存活探测,避免连接无响应挂起

方案3:修正远程目录操作逻辑(如果你的目标是远程服务器)

原脚本中的目录循环是在本地机器执行的,如果你实际想在远程服务器创建文件,需要把这部分逻辑放到SSH的远程命令中,同时修正目录不存在时的创建逻辑:

#!/bin/bash
if ssh -o StrictHostKeyChecking=no -n userid@serverip '
    # 远程执行df -h
    df -h
    # 远程定义目录数组
    array12=(
        /home/uid/test
        /home/uid/test1
        /home/uid/test/ght
    )

    # 远程执行目录和文件操作
    for dir in "${array12[@]}"; do
        if [[ ! -d "$dir" ]]; then
            # 先递归创建目录,再创建文件
            mkdir -p "$dir" && touch "$dir/testfile123.txt"
            echo "Created file in new dir: $dir"
        else
            echo "Dir exists, skip creating file: $dir"
        fi
    done
'; then
    echo "Remote connection and operations completed successfully"
else
    echo "Failed to connect to remote server or execute commands"
    exit 1
fi

关键修正点总结

  • 用-n参数解决SSH等待输入的问题,替代-t -t
  • 目录不存在时必须先执行mkdir -p创建父目录,否则touch会失败
  • 明确区分本地/远程操作逻辑,避免执行位置错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 03:27:24