bashで、複数のホストにSSHするためのシェルを書きましたが、必ず設定読み込みファイルの(行を入れ替えても)1行目しか実行できません。echoのみなら設定ファイル分ループしています。

考えられる理由はなんでしょうか?
==========================================
remote.sh
---
#!/bin/sh
set -x
LIST=server.list
while read H U
do
echo $U"@"$H;
ssh -i ~/.ssh/id_rsa -l $U $H "df";
done < $LIST

==========================================
server.list
---
hostA userA
hostB userB

回答の条件
  • URL必須
  • 1人1回まで
  • 登録:2006/08/31 14:32:00
  • 終了:2006/08/31 16:21:44

ベストアンサー

id:furutanian No.1

furutanian回答回数112ベストアンサー獲得回数142006/08/31 16:15:31

ポイント60pt

remote.shを実行しているshがSIGEXITを食らって途中で中断してしまっているようです。

こういう場合は、以下のように-fスイッチ(または-n)をすると動きます。

ssh -f -i ~/.ssh/id_rsa -l $U $H "df";

http://www.geo.titech.ac.jp/lab/ida/scp.html

id:P-mako

ご回答ありがとうございます。問題なく動きました。

→ fだとbg実行のようなので、nが求めていたもののようです。

SIGEXITですね。勉強になりました。

2006/08/31 16:21:28

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません