合計RAMメモリとスワップメモリ​​を探す

合計RAMメモリとスワップメモリ​​を探す

複数のLinuxサーバー(2000+)の合計メモリと合計スワップ領域を見つけるためのスクリプトを作成する必要があります。私は信頼できるサーバーを持っており、パスワードなしで2000台のサーバーすべてにログインできます。

このスクリプトを実行すると、次の出力が提供されるはずです。

Server         total memory        swap
redhat1   
redhat2
redhat3
...
redhat2000

この目標をどのように達成できますか?

ベストアンサー1

この/proc/meminfoファイルには必要な情報が含まれています。分析するのも簡単です。

これにより、RAMとスワップが提供されます(私が知っているすべてのシステムでこの順序で、kB単位)。

awk '/^(MemTotal|SwapTotal)/{print $2}' /proc/meminfo

フォーマットするには:

printf "%s\t%d\t%d\n" $(hostname) \
                      $(awk '/^(MemTotal|SwapTotal)/{print $2}' /proc/meminfo)

これをSSHと組み合わせるには:

for host in your_list_of_servers ; do
  printf "%s\t%d\t%d\n" $host \
                   $(ssh $host "awk '/^(MemTotal|SwapTotal)/{print \$2}' /proc/meminfo")
done

おすすめ記事