【问题标题】:Using SSH in a while loop在 while 循环中使用 SSH
【发布时间】:2013-02-14 15:26:05
【问题描述】:

我有一个使用 SSH 在远程服务器上创建目录的简单脚本:

    while read memberName; do
        ssh ${serverPath} "mkdir -p ${filePath}"
        wait
    done < sqlRes.txt

(我已经简化了一点 - 这些变量确实存在并且很好)。

如果我让每个 SSH 调用都成为后台作业(使用 &),它会更好但不完全(它应该创建 200 个目录,例如,只做 170 个)。

事实上,它在sqlRes.txt中的第一个条目之后退出循环,没有错误消息并且返回成功状态。

我尝试过 sleep 和 wait 命令,但都没有帮助。

我猜可能存在子shell 的限制,但我认为“等待”应该确保在我尝试下一个之前关闭每个子shell?

有什么想法吗?

仅供参考 - Linux RedHat 中的 ksh

【问题讨论】:

    标签: ssh wait ksh


    【解决方案1】:

    抱歉 - 经过更多搜索后找到了答案(ssh 是交互式的并接受所有输入。更改为 'ssh -n' 并且一切正常)。

    【讨论】:

      猜你喜欢
      • 2021-07-18
      • 2012-07-13
      • 2016-08-06
      • 1970-01-01
      • 2020-02-15
      相关资源
      最近更新 更多