به دست آوردن میانگین مصرف CPU و Memory از گزارشات SAR با استفاده از Bash Script

به دست آوردن میانگین مصرف CPU و Memory از گزارشات SAR با استفاده از Bash Script

علی مرادی

بیشتر سرورهای Linux عملکرد سیستم را با گزارش SAR نظارت می کنند زیرا داده های عملکرد را برای یک هفته جمع می کند. اما می توانید با ایجاد تغییر در پرونده  “/etc/sysconfig/sysstat” این کار را به راحتی به چهار هفته افزایش دهید. همچنین ، این دوره می تواند فراتر از یک ماه تمدید شود. اگر مقدار از ۲۸ فراتر رود ، پرونده های گزارش در چند دایرکتوری قرار می گیرند ، یکی برای هر ماه.

برای افزایش مدت زمان پوشش تا ۲۸ روز ، تغییر زیر را در پرونده “/ etc / sysconfig / sysstat” تغییر دهید. پرونده sysstat را ویرایش کنید و HISTORY = 7 را به HISTORY = 28 تغییر دهید. در این مقاله ما سه اسکریپت bash اضافه کرده ایم که به شما کمک می کند تا به طور متوسط ​​میانگین هر پرونده را در یک مکان مشاهده کنید.

این اسکریپت ها ساده و سرراست هستند. برای اهداف آزمایش ، ما فقط دو معیار عملکرد شامل CPU و Memory را درج کرده ایم. می توانید معیارهای عملکرد دیگر را در متن تغییر دهید تا متناسب با نیاز خود استفاده کنید. توجه داشته باشید که کاربران مستقر در Debian باید به جای آن مسیر “var / log / sysstat / sa” را جایگزین کنند. پرونده پیکربندی را می توان در “/ etc / sysstat / config” یافت.

Script-1: Bash Script برای بهره‌گیری میانگین پردازنده از گزارشات SAR

این اسکریپت bash میانگین پردازنده را از هر پرونده داده جمع آوری کرده و آن را در یک صفحه نمایش می دهد. از آنجا که پایان ماه است ، داده های ۲۸ روزه برای آگوست ۲۰۱۹ را نشان می دهد.

 vi /opt/scripts/sar-cpu-avg.sh

!/bin/sh

echo "+----------------------------------------------------------------------------------+"
echo "|Average:         CPU     %user     %nice   %system   %iowait    %steal     %idle  |"
echo "+----------------------------------------------------------------------------------+"

for file in `ls -tr /var/log/sa/sa* | grep -v sar`

do

dat=`sar -f $file | head -n 1 | awk '{print $4}'`

echo -n $dat

وقتی اسکریپت را اجرا کردید ، یک خروجی مانند نسخه زیر دریافت خواهید کرد.

sh /opt/scripts/sar-cpu-avg.sh

+----------------------------------------------------------------------------------+
|Average:         CPU     %user     %nice   %system   %iowait    %steal     %idle  |
+----------------------------------------------------------------------------------+
۰۸/۰۱/۲۰۱۹        all      0.70      0.00      1.19      0.00      0.00     98.10
۰۸/۰۲/۲۰۱۹        all      1.73      0.00      3.16      0.01      0.00     95.10
۰۸/۰۳/۲۰۱۹        all      1.73      0.00      3.16      0.01      0.00     95.11
۰۸/۰۴/۲۰۱۹        all      1.02      0.00      1.80      0.00      0.00     97.18
۰۸/۰۵/۲۰۱۹        all      0.68      0.00      1.08      0.01      0.00     98.24
۰۸/۰۶/۲۰۱۹        all      0.71      0.00      1.17      0.00      0.00     98.12
۰۸/۰۷/۲۰۱۹        all      1.79      0.00      3.17      0.01      0.00     95.03
۰۸/۰۸/۲۰۱۹        all      1.78      0.00      3.14      0.01      0.00     95.08
۰۸/۰۹/۲۰۱۹        all      1.07      0.00      1.82      0.00      0.00     97.10
۰۸/۱۰/۲۰۱۹        all      0.38      0.00      0.50      0.00      0.00     99.12
.
.
.
۰۸/۲۹/۲۰۱۹        all      1.50      0.00      2.33      0.00      0.00     96.17
۰۸/۳۰/۲۰۱۹        all      2.32      0.00      3.47      0.01      0.00     94.20
+----------------------------------------------------------------------------------+

Script-2: Bash Script برای به دست آوردن میانگین استفاده از Memory از گزارشات SAR

این اسکریپت bash میانگین حافظه را از هر پرونده داده جمع آوری کرده و آن را در یک صفحه نمایش می دهد. از آنجا که پایان ماه است ، داده های ۲۸ روزه برای آگوست ۲۰۱۹ را نشان می دهد.

vi /opt/scripts/sar-memory-avg.sh

!/bin/sh

echo "+-------------------------------------------------------------------------------------------------------------------+"
echo "|Average:       kbmemfree kbmemused  %memused kbbuffers kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty  |"
echo "+-------------------------------------------------------------------------------------------------------------------+"

for file in `ls -tr /var/log/sa/sa* | grep -v sar`

do

dat=`sar -f $file | head -n 1 | awk '{print $4}'`

echo -n $dat

sar -r -f $file  | grep -i Average | sed "s/Average://"

done

echo "+-------------------------------------------------------------------------------------------------------------------+"

وقتی اسکریپت را اجرا کردید ، یک خروجی مانند نسخه زیر دریافت خواهید کرد.

sh /opt/scripts/sar-memory-avg.sh

+--------------------------------------------------------------------------------------------------------------------+
|Average:        kbmemfree kbmemused  %memused kbbuffers kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty  |
+--------------------------------------------------------------------------------------------------------------------+
۰۸/۰۱/۲۰۱۹      ۱۴۹۲۳۳۱   ۲۳۸۸۴۶۱     ۶۱٫۵۵     ۲۹۸۸۸   ۱۱۵۲۱۴۲   ۱۵۶۰۶۱۵     ۱۲٫۷۲   ۱۶۹۳۰۳۱    ۳۸۰۴۷۲         ۶
۰۸/۰۲/۲۰۱۹      ۱۴۹۳۱۲۶   ۲۳۸۷۶۶۶     ۶۱٫۵۳     ۲۹۸۸۸   ۱۱۴۷۸۱۱   ۱۵۶۹۶۲۴     ۱۲٫۷۹   ۱۶۹۶۳۸۷    ۳۷۳۳۴۶         ۳
۰۸/۰۳/۲۰۱۹      ۱۴۸۹۵۸۲   ۲۳۹۱۲۱۰     ۶۱٫۶۲     ۲۹۸۸۸   ۱۱۴۷۰۷۶   ۱۵۸۱۷۱۱     ۱۲٫۸۹   ۱۷۰۱۴۸۰    ۳۷۰۳۲۵         ۳
۰۸/۰۴/۲۰۱۹      ۱۴۹۰۴۰۳   ۲۳۹۰۳۸۹     ۶۱٫۶۰     ۲۹۸۸۸   ۱۱۴۸۲۰۶   ۱۵۶۹۶۷۱     ۱۲٫۷۹   ۱۶۹۷۶۵۴    ۳۷۳۴۸۴         ۴
۰۸/۰۵/۲۰۱۹      ۱۴۸۴۵۰۶   ۲۳۹۶۲۸۶     ۶۱٫۷۵     ۲۹۸۸۸   ۱۱۵۲۴۰۹   ۱۵۶۳۸۰۴     ۱۲٫۷۵   ۱۷۰۲۴۲۴    ۳۷۴۶۲۸         ۴
۰۸/۰۶/۲۰۱۹      ۱۴۷۳۵۹۳   ۲۴۰۷۱۹۹     ۶۲٫۰۳     ۲۹۸۸۸   ۱۱۵۱۱۳۷   ۱۵۷۷۴۹۱     ۱۲٫۸۶   ۱۷۱۵۴۲۶    ۳۷۱۰۰۰         ۸
۰۸/۰۷/۲۰۱۹      ۱۴۶۷۱۵۰   ۲۴۱۳۶۴۲     ۶۲٫۱۹     ۲۹۸۸۸   ۱۱۵۵۶۳۹   ۱۵۹۶۶۵۳     ۱۳٫۰۱   ۱۷۱۶۹۰۰    ۳۷۲۵۷۴        ۱۳
۰۸/۰۸/۲۰۱۹      ۱۴۵۱۳۶۶   ۲۴۲۹۴۲۶     ۶۲٫۶۰     ۲۹۸۸۸   ۱۱۶۲۲۵۳   ۱۶۰۴۶۷۲     ۱۳٫۰۸   ۱۷۲۵۹۳۱    ۳۷۶۹۹۸         ۵
۰۸/۰۹/۲۰۱۹      ۱۴۵۱۱۹۱   ۲۴۲۹۶۰۱     ۶۲٫۶۱     ۲۹۸۸۸   ۱۱۵۸۶۹۶   ۱۵۸۲۱۹۲     ۱۲٫۹۰   ۱۷۲۸۸۱۹    ۳۷۱۰۲۵         ۴
۰۸/۱۰/۲۰۱۹      ۱۴۵۰۰۵۰   ۲۴۳۰۷۴۲     ۶۲٫۶۴     ۲۹۸۸۸   ۱۱۶۰۹۱۶   ۱۵۷۹۸۸۸     ۱۲٫۸۸   ۱۷۲۹۹۷۵    ۳۷۰۸۴۴         ۵
.
.
.
۰۸/۲۹/۲۰۱۹      ۱۳۶۵۶۹۹   ۲۵۱۵۰۹۳     ۶۴٫۸۱     ۲۹۸۸۸   ۱۱۹۸۸۳۲   ۱۵۹۳۵۶۷     ۱۲٫۹۹   ۱۷۸۱۷۳۳    ۳۷۶۱۵۷        ۱۵
۰۸/۳۰/۲۰۱۹      ۱۳۶۱۹۲۰   ۲۵۱۸۸۷۲     ۶۴٫۹۱     ۲۹۸۸۸   ۱۲۰۰۷۸۵   ۱۵۹۵۱۰۵     ۱۳٫۰۰   ۱۷۸۴۵۵۶    ۳۷۵۶۴۱         ۸
+-------------------------------------------------------------------------------------------------------------------+

Script-3: Bash Script برای به دست آوردن میانگین CPU و استفاده از Memory از گزارشات SAR

این اسکریپت bash به طور متوسط ​​CPU و حافظه را از هر پرونده داده جمع می کند و آنها را در یک صفحه نمایش می دهد. این اسکریپت bash در مقایسه با اسکریپت بالا کمی متفاوت است. این میانگین هر دو (CPU و Memory) را در یک مکان نشان می دهد ، نه داده های دیگر.

vi /opt/scripts/sar-cpu-mem-avg.sh

!/bin/bash

for file in `ls -tr /var/log/sa/sa* | grep -v sar`

do

        sar -f $file | head -n 1 | awk '{print $4}'

        echo "-----------"

        sar -u -f $file | awk '/Average:/{printf("CPU Average: %.2f%\n"), 100 - $8}'

        sar -r -f $file | awk '/Average:/{printf("Memory Average: %.2f%\n"),(($3-$5-$6)/($2+$3)) * 100 }'

        printf "\n"

done

وقتی اسکریپت را اجرا کردید ، یک خروجی مانند نسخه زیر دریافت خواهید کرد.

sh /opt/scripts/sar-cpu-mem-avg.sh

۰۸/۰۱/۲۰۱۹
-----------
CPU Average: 1.90%
Memory Average: 31.09%

۰۸/۰۲/۲۰۱۹
-----------
CPU Average: 4.90%
Memory Average: 31.18%

۰۸/۰۳/۲۰۱۹
-----------
CPU Average: 4.89%
Memory Average: 31.29%

۰۸/۰۴/۲۰۱۹
-----------
CPU Average: 2.82%
Memory Average: 31.24%

۰۸/۰۵/۲۰۱۹
-----------
CPU Average: 1.76%
Memory Average: 31.28%
.
.
.
۰۸/۲۹/۲۰۱۹
-----------
CPU Average: 3.83%
Memory Average: 33.15%

۰۸/۳۰/۲۰۱۹
-----------
CPU Average: 5.80%
Memory Average: 33.19%

امیدوارم این مقالع برای شما مفید بوده باشد.

ما را در شتابان هاست دنبال کنید.

برچسب ها: SSh