複数の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