Monday, September 28, 2026

.::: Server Resource & MariaDB Health Check local_check, Local_check_bar, Local_check_loop using mpstat, sysstat :::.

 

correlation with 

https://teguhth.blogspot.com/2024/01/shell-script-to-get-cpu-memory-usage.html

1. install mpstat & run 

dnf install -y sysstat

mpstat 1 1 | awk '/Average:/ {printf "%.2f", 100-$NF}'

 

 
2. run script local_check_bar.sh

sh /data/local_check_bar.sh
watch sh /data/local_check_bar.sh
 

[root@teguhth10x data]# pwd
/data
[root@teguhth10x data]#
[root@teguhth10x data]# cat /data/local_check_bar.sh
#!/bin/bash
# dnf install -y sysstat
#CPU=$(top -bn1 | awk '/Cpu\(s\)/ {printf "%.2f", 100 - $8}')
CPU=$(mpstat 1 1 | awk '/Average:/ {printf "%.2f", 100-$NF}')

Mem_Used_mb=$(free -m | awk 'NR==2 {printf "%.0f", $3}')
Mem_Total_mb=$(free -m | awk 'NR==2 {printf "%.0f", $2}')
Mem_Used_kb=$(free -m | awk 'NR==2 {printf "%.0f", $3*1024}')
Mem_Total_kb=$(free -m | awk 'NR==2 {printf "%.0f", $2*1024}')
Mem_Used_gb=$(free -m | awk 'NR==2 {printf "%.0f", $3/1024}')
Mem_Total_gb=$(free -m | awk 'NR==2 {printf "%.0f", $2/1024}')
Mem_Used_percent=$(free -m | awk 'NR==2 {printf "%.2f", $3*100/$2}')
Mem_swap_used_mb=$(free -m | awk 'NR==3 {printf "%.0f", $3}')
Mem_swap_total_mb=$(free -m | awk 'NR==3 {printf "%.0f", $2}')
Mem_swap_used_kb=$(free -m | awk 'NR==3 {printf "%.0f", $3*1024}')
Mem_swap_total_kb=$(free -m | awk 'NR==3 {printf "%.0f", $2*1024}')
Mem_swap_used_gb=$(free -m | awk 'NR==3 {printf "%.0f", $3/1024}')
Mem_swap_total_gb=$(free -m | awk 'NR==3 {printf "%.0f", $2/1024}')
Mem_swap_percent=$(free -m | awk 'NR==3 {printf "%.2f", $3*100/$2}')

Mem_mTotal_mb=$(free -m | awk 'NR==2 {print $2}')
MEMORY_MARIA_MB=$(ps -C mariadbd -o rss= | awk '{sum+=$1} END {printf "%.0f", sum/1024}')
MEMORY_MARIA_USAGE=$(awk -v used="$MEMORY_MARIA_MB" -v total="$Mem_mTotal_mb" 'BEGIN {if(total>0) printf "%.2f",(used/total)*100; else printf "0.00"}')

width=50

filledc=$(awk -v usage="$CPU" -v width="$width" 'BEGIN {printf "%d",usage*width/100}')
barc=$(printf "%${filledc}s" "" | tr ' ' 'o')

filledm=$(awk -v usage="$MEMORY_MARIA_USAGE" -v width="$width" 'BEGIN {printf "%d",usage*width/100}')
barm=$(printf "%${filledm}s" "" | tr ' ' 'o')

filleds=$(awk -v usage="$Mem_Used_percent" -v width="$width" 'BEGIN {printf "%d",usage*width/100}')
bars=$(printf "%${filleds}s" "" | tr ' ' 'o')

filledsw=$(awk -v usage="$Mem_swap_percent" -v width="$width" 'BEGIN {printf "%d", usage*width/100}')

barsw=$(printf "%${filledsw}s" "" | tr ' ' 'o')

Server=$(hostname -s)
osx=$(grep '^PRETTY_NAME=' /etc/os-release | cut -d= -f2- | tr -d '"')
ip_address=$(hostname -I | awk '{print $1}')

echo ".::: Result checking on server with hostname << $Server >> & << $ip_address >> :::."
echo ""
echo "Hostname Server        : $Server"
echo "IP Address(ifconfig)   : $ip_address"

printf "CPU Usage(%%)           :%6.2f%% [%-50s]\n" "$CPU" "$barc"
printf "Memory Usage(%%) Maria  :%6.2f%% [%-50s]\n" "$MEMORY_MARIA_USAGE" "$barm"
printf "Memory Usage(%%) Total  :%6.2f%% [%-50s]\n" "$Mem_Used_percent" "$bars"
printf "Swap Usage(%%)          :%6.2f%% [%-50s]\n" "$Mem_swap_percent" "$barsw"

echo "Memory Usage Maria     : ${MEMORY_MARIA_MB} MB"
echo "Used Memory            : $Mem_Used_gb GB, $Mem_Used_mb MB, $Mem_Used_kb KB"
echo "Total Memory           : $Mem_Total_gb GB, $Mem_Total_mb MB, $Mem_Total_kb KB"
echo "Used Swap              : $Mem_swap_used_gb GB, $Mem_swap_used_mb MB, $Mem_swap_used_kb KB"
echo "Total Swap             : $Mem_swap_total_gb GB, $Mem_swap_total_mb MB, $Mem_swap_total_kb KB"

echo ""
systemctl status mariadb --no-pager | grep "Active:"

echo ""
echo "disk info"
df -h

echo ""
echo "Copyright by           : Teguh Triharto"
echo "Website                : https://www.linkedin.com/in/teguhth"
echo "Operating System       : $osx"
[root@teguhth10x data]#


3. run script local_check_loop.sh

sh /data/local_check_loop.sh
 

[root@teguhth10x data]# pwd
/data
[root@teguhth10x data]# cat /data/local_check_loop.sh
#!/bin/bash

while true
do
    clear

    #CPU=$(top -bn1 | awk '/Cpu\(s\)/ {printf "%.2f", 100 - $8}')
    CPU=$(mpstat 1 1 | awk '/Average:/ {printf "%.2f", 100-$NF}')
    Mem_Used_mb=$(free -m | awk 'NR==2 {printf "%.0f", $3}')
    Mem_Total_mb=$(free -m | awk 'NR==2 {printf "%.0f", $2}')
    Mem_Used_kb=$(free -m | awk 'NR==2 {printf "%.0f", $3*1024}')
    Mem_Total_kb=$(free -m | awk 'NR==2 {printf "%.0f", $2*1024}')
    Mem_Used_gb=$(free -m | awk 'NR==2 {printf "%.0f", $3/1024}')
    Mem_Total_gb=$(free -m | awk 'NR==2 {printf "%.0f", $2/1024}')
    Mem_Used_percent=$(free -m | awk 'NR==2 {printf "%.2f", $3*100/$2}')

    Mem_swap_used_mb=$(free -m | awk 'NR==3 {printf "%.0f", $3}')
    Mem_swap_total_mb=$(free -m | awk 'NR==3 {printf "%.0f", $2}')
    Mem_swap_used_kb=$(free -m | awk 'NR==3 {printf "%.0f", $3*1024}')
    Mem_swap_total_kb=$(free -m | awk 'NR==3 {printf "%.0f", $2*1024}')
    Mem_swap_used_gb=$(free -m | awk 'NR==3 {printf "%.0f", $3/1024}')
    Mem_swap_total_gb=$(free -m | awk 'NR==3 {printf "%.0f", $2/1024}')
    Mem_swap_percent=$(free -m | awk 'NR==3 {printf "%.2f", $3*100/$2}')

    Mem_mTotal_mb=$(free -m | awk 'NR==2 {print $2}')
    MEMORY_MARIA_MB=$(ps -C mariadbd -o rss= | awk '{sum+=$1} END {printf "%.0f", sum/1024}')
    MEMORY_MARIA_USAGE=$(awk -v used="$MEMORY_MARIA_MB" -v total="$Mem_mTotal_mb" 'BEGIN {if(total>0) printf "%.2f",(used/total)*100; else printf "0.00"}')

    width=50

    filledc=$(awk -v usage="$CPU" -v width="$width" 'BEGIN {printf "%d",usage*width/100}')
    barc=$(printf "%${filledc}s" "" | tr ' ' 'o')

    filledm=$(awk -v usage="$MEMORY_MARIA_USAGE" -v width="$width" 'BEGIN {printf "%d",usage*width/100}')
    barm=$(printf "%${filledm}s" "" | tr ' ' 'o')

    filleds=$(awk -v usage="$Mem_Used_percent" -v width="$width" 'BEGIN {printf "%d",usage*width/100}')
    bars=$(printf "%${filleds}s" "" | tr ' ' 'o')

    filledsw=$(awk -v usage="$Mem_swap_percent" -v width="$width" 'BEGIN {printf "%d", usage*width/100}')
    barsw=$(printf "%${filledsw}s" "" | tr ' ' 'o')

    Server=$(hostname -s)
    osx=$(grep '^PRETTY_NAME=' /etc/os-release | cut -d= -f2- | tr -d '"')
    ip_address=$(hostname -I | awk '{print $1}')

    echo ".::: Result checking on server with hostname << $Server >> & << $ip_address >> :::."
    echo
    echo "Hostname Server        : $Server"
    echo "IP Address(ifconfig)   : $ip_address"

    printf "CPU Usage(%%)           :%6.2f%% [%-50s]\n" "$CPU" "$barc"
    printf "Memory Usage(%%) Maria  :%6.2f%% [%-50s]\n" "$MEMORY_MARIA_USAGE" "$barm"
    printf "Memory Usage(%%) Total  :%6.2f%% [%-50s]\n" "$Mem_Used_percent" "$bars"
    printf "Swap Usage(%%)          :%6.2f%% [%-50s]\n" "$Mem_swap_percent" "$barsw"
    echo "Memory Usage Maria     : ${MEMORY_MARIA_MB} MB"
    echo "Used Memory            : $Mem_Used_gb GB, $Mem_Used_mb MB, $Mem_Used_kb KB"
    echo "Total Memory           : $Mem_Total_gb GB, $Mem_Total_mb MB, $Mem_Total_kb KB"
    echo "Used Swap              : $Mem_swap_used_gb GB, $Mem_swap_used_mb MB, $Mem_swap_used_kb KB"
    echo "Total Swap             : $Mem_swap_total_gb GB, $Mem_swap_total_mb MB, $Mem_swap_total_kb KB"

    echo
    systemctl status mariadb --no-pager | grep "Active:"

    echo
    echo "disk info"
    df -h

    echo
    echo "Copyright by           : Teguh Triharto"
    echo "Website                : https://www.linkedin.com/in/teguhth"
    echo "Operating System       : $osx"

    sleep 2
done
[root@teguhth10x data]#

No comments:

Post a Comment

Popular Posts