SSHを介してコマンド情報とファイル入力を取得する必要があります

SSHを介してコマンド情報とファイル入力を取得する必要があります

私はinf whileとforループを使ってリモートコンピュータからコマンド情報を取得するスクリプトを書いています。 PFBスクリプト。ただし、スクリプトは単一のコマンドメッセージを提供することによってのみ終了します。このファイルにはいくつかのコマンドがあります(CMDS=$HOMEDIR/cmnd.txt)。 sshを使用しないとすべてのコマンドはうまく機能しますが、sshを使用すると最初のコマンドのみが実行されます。

#!/bin/bash
HOMEDIR=/home/448130
CMDS=$HOMEDIR/cmnd.txt
while read -r line
do
  for i in $(cat hostname.txt);
  do
    echo "*****************************  $line output begins  ********************************";
    #echo $line
    ssh $i $line
    echo "*****************************  $line output ends  ********************************";
  done
done < $CMDS

この問題を解決するのに役立ちます。

ベストアンサー1

を実行すると、ssh標準入力がリモートコマンドに渡されます。リモートコマンドは実際には何もしませんが、ローカルsshプロセスにはわかりません。これを防ぐために、リモートコマンドに入力を渡したくないので、入力ssh/dev/null

忘れないで二重引用符変数の置換

IFS= は -r 行を読み込んでいる間
する
  $(catホスト名.txt)の場合。
  する
    echo "****************************$ ライン出力開始**************** ** * ****************”;
    #echo$line
    SSH "$i" "$line"</dev/空
    echo "**************************** $行末出力**************** *********************";
  完璧
完了<"$CMDS"

おすすめ記事