簡體   English   中英

如何獲取遠程服務器的內存和cpu使用情況?

[英]How to get the memory and cpu usage of a remote server?

我的目的是登錄多台服務器並一一打印出它們的內存和 CPU 使用情況。 我寫了以下腳本

START=1 
END=5
for i in {$START..$END}
do
    echo "myserver$i"
    ssh myserver$i
    free -m | awk 'NR==2{printf "Memory Usage: %s/%sMB (%.2f%%)\n", $3,$2,$3*100/$2 }'
    top -bn1 | grep load | awk '{printf "CPU Load: %.2f\n", $(NF-2)}'
    logout
done

但它不起作用。 誰能給出解決方案? 非常感謝!

仔細看看你的代碼。 執行 SSH 命令后,您將位於遠程服務器上的 SSH shell 中。 顯然,您的腳本現在希望您(通過鍵盤)與遠程服務器通話。 當它完成時,例如,如果您按 ctrl-c 或 ctrl-d,那么下一個命令(如“free”和“top”)將在您的本地機器上運行。

您必須使用一種“-exec”參數告訴 ssh 它應該在遠程服務器上執行 free 和 top :D

我相信你自己弄清楚如何做到這一點,玩得開心。

有一個用於 CPU/mem 使用的有用命令 - top 要獲得結果,請運行此命令。 CPU 使用率 - top -b -n 1 | grep Cpu top -b -n 1 | grep Cpu Mem 用法 - top -b -n 1 | grep 'KiB Mem' top -b -n 1 | grep 'KiB Mem'

在網上搜索並結合了 stackflow 上其他問題的一些答案之后。 我得到以下解決方案。

解決方案

在您的本地計算機上,您可能希望使用以下 bash 腳本,例如, usage_ssh

START=1
END=3
date
for i in $(seq $START $END)
do
        printf '=%.0s' {1..50};
        printf '\n'
        echo myservery$i
        ssh myserver$i -o LogLevel=QUIET -t "~/bin/usage"
done
printf '=%.0s' {1..50};
printf '\n'
printf 'CPU Load: \n'
printf 'First Field\tprocesses per processor\n'
printf 'Second Filed\tidling percentage in last 5 minutes\n'
printf '\n'
printf '\n'

在您的遠程服務器上,您應該有以下名為usage bash 腳本。 此腳本應位於~/bin

free -m | awk 'NR==2{printf "Memory Usage\t%s/%sMB\t\t%.2f%\n", $3, $2, $3/$2*100}';
top -n 1 | grep load | awk '{printf "CPU Load\t%.2f\t\t\t%.2f\n", $(NF-2), $(NF-1)}';

解釋

這個想法是,您將調用 use ssh -t <your command>在遠程文件上運行可執行文件,並在本地計算機的屏幕上獲取輸出。

輸出

Sat Mar 28 10:32:34 CDT 2020
==================================================
myserver1
Memory Usage    47418/48254MB       98.27%
CPU Load        0.01                0.02
==================================================
myserver2
Memory Usage    47421/48254MB       98.27%
CPU Load        0.01                0.02
==================================================
myserver3
Memory Usage    4300/84541MB        5.09%
CPU Load        0.02                0.02
==================================================
CPU Load: 
First Field processes per processor
Second Filed    idling percentage in last 5 minutes

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM