linuxで10台ぐらいあるサーバのdfの結果をまとめて取得するコマンド、もしくはシェルでどのように作成すれば良いか教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2009/08/05 09:28:13
  • 終了:2009/08/12 09:30:02

回答(4件)

id:y-kawaz No.1

y-kawaz回答回数1421ベストアンサー獲得回数2262009/08/05 10:34:00

ポイント10pt

こんな感じで良いんじゃないでしょうか。

前提条件として各ホストに接続元から公開鍵認証が設定してあり、その鍵はパスフレーズ無しかssh-agent等でパスワードの入力が不要にしてあることが必要ですが。

hosts=""
hosts="$hosts host1"
hosts="$hosts host2"
hosts="$hosts host3"
hosts="$hosts host4"
hosts="$hosts host5"
for h in $hosts; do
  echo "===== $h ====="
  ssh $h df
done

http://q.hatena.ne.jp/answer

id:takerudayo No.2

takerudayo回答回数165ベストアンサー獲得回数292009/08/05 10:27:50

ポイント10pt

状況次第だと思われるので考えられる2種類の方法を提示します。

方法1:リモートシェルで全台接続が可能な状態の場合は、

    10台のうち1台で以下のようなシェルを作成して実行してみてはいかがでしょうか。

rsh サーバ名A -l ユーザ名 /bin/df

rsh サーバ名B -l ユーザ名 /bin/df

rsh サーバ名C -l ユーザ名 /bin/df


方法2:telnet端末でのみ接続が可能な状態の場合は、

    お使いのtelnetクライアントソフトのマクロ機能を利用して実現が可能だと思います。

    何を使われていますか?

id:ramenboy No.3

ramenboy回答回数16ベストアンサー獲得回数12009/08/05 10:40:25

ポイント10pt

モニタリングエージェントなどが導入されていなければ、ssh経由などで取得するしかないですね。


#!/bin/sh

HOSTS="host1 host2 host3 host4 host5 ...."

for h in ${HOSTS}; do

echo "df on ${h}"

ssh ${h} "df -k"

echo

done


こんな感じでしょうか。sshの公開鍵は各サーバに登録しておいてくださいね。

http://www.google.com/

id:h_kondo No.4

h_kondo回答回数33ベストアンサー獲得回数32009/08/06 05:12:41

ポイント10pt

案1.10台のlinuxマシンでsnmpサービスを起動し、snmp問い合わせでディスク容量をチェックする。

snmpサービスが動いていればsnmpwalkで問い合わせればよい。

 グラフを描く場合はMRTGとかを使用。

案2.10台のlinuxマシンでmunin-nodeサービスを起動、ncでディスク容量をチェックする。

 グラフを描く場合はmuninを使用。

 http://munin.projects.linpro.no/

 munin-nodeが動いていれば

 telnet localhost 4949

 fetch df

 とすればdiskの使用量が%で返ってきます。

 plugins/dfのスクリプトを少々変更すれば%ではなく実際の使用量(bytes/blocks/Kbytes等)に替えられます。

 telnetの代わりにnc (netcat)を使用すれば自動化も問題ありません。

 nc localhost 4949 < fetch_df.txt

 fetch_df.txtの中には"fetch df"を1行書いておく。

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

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

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

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

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