zoukankan      html  css  js  c++  java
  • bash 中 while读取文件并通过 ssh执行命令出现的问题及解决方法

        最近在做一些集群管理的简单脚本,其中有一部分是将文件中的机器名读取,并将应用通过scp传输,通过ssh解压部署。

    #! /bin/bash
    while read IP
    do
    scp adfs-*.tar.gz $IP:~
    ssh $IP tar -zxf adfs-*.tar.gz
    done<machine

        一开始写了个简单的脚本,通过machine读取所有机器名,在进行操作。

        可是运行以后发现,只有第一次循环成功运行,剩下的都没有运行。

        google了一下,是由于bash中while循环调用ssh后会使用subshell,导致后续操作无法进行。

        解决方法为在ssh上加参数-n,即可成功运行。

    #! /bin/bash
    while read IP
    do
    scp adfs-*.tar.gz $IP:~
    ssh -n $IP tar -zxf adfs-*.tar.gz
    done<machine

  • 相关阅读:
    H5 后代选择器
    H5 id选择器和class选择器
    H5 类选择器
    H5 id选择器
    H5 标签选择器
    H5 颜色属性
    H5 文本属性
    H5 文字属性的缩写
    H5 字体属性补充
    H5 文字属性
  • 原文地址:https://www.cnblogs.com/sidmeng/p/2354250.html
Copyright © 2011-2022 走看看