私は、サーバーのリストをSSHで自動化してデータを収集したいと考えています。Forループを使用するとSSHセッションがハングする
今すぐセッションがmsgで始まります。 "stdinは端末ではないため、疑似端末は割り当てられません。"遠隔サーバーに接続されることなく継続されます。
SSH回線から '-n'を削除すると、SSHセッションが切断されるまで、リモートサーバに接続してスクリプトの実行を停止します。
for host in $(cat host_list);
do
ssh -n -o stricthostkeychecking=no $host
var1=$(awk -F '.' '{print $1}' some_file)
var2=$(some_command $var1)
echo $var2
done
オリジナルポスト(コンテキストのために必要であれば): Data Extrapolation & Bash Logic within Expect Script
私は少しこのスクリプトがやろうとしているもの困惑しています。 '$()'のコマンドをリモートマシン上で実行しますか? –
はい、正しいです。 – Mark
ループを忘れて、リモートホストで実行したいコマンドを表示してください。 'some_file'と' some_command'がローカルにあるかリモートホストにあるのかを教えてください – markp