2017-05-25 3 views
-3

〜20台のマシンのリストにsshアクセスできます。リスト内のすべての負荷状況を調べる必要があります。プログラムトップは、ヘッダ内のマシンステータスに関する情報を与えてくれます。マシンにsshを使用して負荷情報を取得する

例:私は手動で各マシンにはsshを行う

top - 13:29:53 up 107 days, 20:13, 47 users, load average: 3.80, 3.74, 3.62 
Tasks: 794 total, 2 running, 787 sleeping, 3 stopped, 2 zombie 
Cpu(s): 2.6%us, 0.8%sy, 0.0%ni, 84.7%id, 11.9%wa, 0.0%hi, 0.0%si, 0.0%st 
Mem: 99055876k total, 47947572k used, 51108304k free, 697684k buffers 
Swap: 26148860k total, 17145136k used, 9003724k free, 35844820k cached 

今日、「上部」のデータをコピーし、それを格納を行います。私はこの仕事が自動化できるかどうか疑問に思っていました。 sshには、リモートマシン上で実行される引数としてunix cmdを与えるオプションがあることがわかりました。しかし、どのように「トップ」からの出力をキャプチャするのですか?または、同じヘッダ出力を与えるバッチもありますか?それは私のためのテーブルを行う1つのスクリプトを持っていることは素晴らしいだろう。

おかげで、Ubuntuのために ゲルト

+0

これはAnsibleとフェッチモジュールを使用するための偉大なケースのように聞こえます。これは、すべての方法でプレイブックに自動化し、ローカルマシンにコピーすることができます。 [https://docs.ansible.com/ansible/fetch_module.html#fetch](https://docs.ansible.com/ansible/fetch_module.html#fetch) – phandolin

+0

トップが返す情報の多くは自動的に取得されますAnsible(またはChef、またはPuppet)の開始時に実行されます。マシンのセットの「稼働時間」を取得することは、inventory.iniファイル内のサーバのリストに過ぎず、 '不可能なすべてのインベントリ= inventory.ini -mコマンド-a 'アップタイム' –

答えて

0

[12:15 AM] [email protected]: /tmp $ ssh [email protected] 'top -b -n 1 | head -n 5' >123.txt 

[12:15 AM] [email protected]: /tmp $ cat 123.txt 
top - 00:16:06 up 35 days, 10:58, 1 user, load average: 0,34, 0,36, 0,29 
Tasks: 277 total, 1 running, 274 sleeping, 0 stopped, 2 zombie 
%Cpu(s): 7,1 us, 5,7 sy, 0,0 ni, 87,0 id, 0,1 wa, 0,0 hi, 0,0 si, 0,0 st 
KiB Mem : 24671340 total, 1066056 free, 12822724 used, 10782560 buff/cache 
KiB Swap: 16756732 total, 16094308 free, 662424 used. 11208916 avail Mem 
関連する問題