84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
while read $HOSTNAME do ssh root@$HOSTNAME "poweroff" done < host.log
host.log 中的内容: 192.168.122.1 192.168.122.2 192.168.122.3
机器配置过ssh互信
执行那个后发现每次只能关闭一台机器脚本就退出了。需要再次执行才能关闭后面的机器,请问是为什么?谢谢
次のようにこの行を書いてみてください: ssh root@$HOSTNAME "poweroff" <
またはssh -nと書きます。この問題が発生する理由は、ssh が標準入力の残りの部分を読み取るためです。
ssh -n
そのため、データを読み取るために while + リダイレクトを使用しないようにしています。読み取りたい場合は、別のファイル記述子も使用して読み取ります。 stdin は他のコマンドで簡単に読み取ることができます。
perl -ne 'system q/ssh/, q/root@/.$_,q/poweroff/' host.log #これで問題ないはずです
読み取り中に$を削除してください$
ホスト名の読み取り中 する ssh root@$HOSTNAME "poweroff" 完了
次のようにこの行を書いてみてください: ssh root@$HOSTNAME "poweroff" <
または
ssh -n
と書きます。この問題が発生する理由は、ssh が標準入力の残りの部分を読み取るためです。そのため、データを読み取るために while + リダイレクトを使用しないようにしています。読み取りたい場合は、別のファイル記述子も使用して読み取ります。 stdin は他のコマンドで簡単に読み取ることができます。
perl -ne 'system q/ssh/, q/root@/.$_,q/poweroff/' host.log #これで問題ないはずです
読み取り中に$を削除してください$
HOSTNAMEホスト名の読み取り中
する
ssh root@$HOSTNAME "poweroff"
完了