| Server IP : 198.38.94.67 / Your IP : 216.73.217.74 Web Server : LiteSpeed System : Linux d6054.dxb1.stableserver.net 5.14.0-570.25.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jul 9 04:57:09 EDT 2025 x86_64 User : azfilmst ( 1070) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /lib64/nagios/plugins/ |
Upload File : |
#!/bin/bash
LOG_FILE="/var/log/memory_usage_user.log"
DATE=$(date "+%Y-%m-%d %H:%M:%S")
get_memory_faults() {
local faults_output=$(lveinfo -d --period 1d --by-fault pmem --show-columns id,PMemF -j)
if [ "$faults_output" ]; then
echo "$faults_output" | jq -r --arg date "$DATE" '.data[] | "\($date) \(.ID): \(.PMemF) faults"' >> $LOG_FILE
fi
}
calculate_average_memory() {
local json_output=$(lveinfo --order-by pmem_avg --limit 10 -d --show-columns aPMem,id -j)
# Check if the data array in the JSON output is empty
if [ "$(echo "$json_output" | jq '.data | length')" -gt 0 ]; then
# Get sum and count of aPMem
local sum=$(echo "$json_output" | jq '[.data[].aPMem] | add')
local count=$(echo "$json_output" | jq '.data | length')
local bytes_to_gb=1073741824 # 1024*1024*1024
# Calculate the average in GB
local average=$(echo "scale=2; $sum / $count / $bytes_to_gb" | bc)
echo "avg_top_10_user_mem=${average} Top 10 user's average memory usage: ${average} GB"
exit 0
else
echo "No data to calculate average"
exit 1
fi
}
calculate_average_memory
get_memory_faults