Skip to content

Instantly share code, notes, and snippets.

@papamoose
Last active April 14, 2024 23:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save papamoose/1b37aa7da0163165998a857ebc397733 to your computer and use it in GitHub Desktop.
Save papamoose/1b37aa7da0163165998a857ebc397733 to your computer and use it in GitHub Desktop.
#!/bin/bash
total_rss=0
total_vsz=0
total_size=0
while read -r size rss vsz user command; do
total_rss=$((total_rss+rss))
total_vsz=$((total_vsz+vsz))
total_size=$((total_size+size))
done <<< $(ps -eo size,rss,vsz,user,command --sort -vsz|grep -v RSS)
mem_free=$(grep ^MemFree /proc/meminfo | sed -n 's/[a-zA-Z]*:\ *\([0-9]*\) kB/\1/p')
mem_avail=$(grep ^MemAvailable /proc/meminfo | sed -n 's/[a-zA-Z]*:\ *\([0-9]*\) kB/\1/p')
mem_buffers=$(grep ^Buffers /proc/meminfo | sed -n 's/[a-zA-Z]*:\ *\([0-9]*\) kB/\1/p')
mem_cached=$(grep ^Cached /proc/meminfo | sed -n 's/[a-zA-Z]*:\ *\([0-9]*\) kB/\1/p')
mem_total=$(grep ^MemTotal /proc/meminfo | sed -n 's/[a-zA-Z]*:\ *\([0-9]*\) kB/\1/p')
cat << EOF
{
"proc_meminfo": {
"MemFree": "$mem_free",
"MemAvailable": "$mem_avail",
"Buffers": "$mem_buffers",
"Cached": "$mem_cached",
"MemTotal": "$mem_total",
"free_buffers_cached": "$(echo "scale=2; $mem_free + $mem_buffers + $mem_cached" | bc)"
},
"ps": {
"rss": {
"kb": "$total_rss",
"mb": "$(echo "scale=2; $total_rss / 1024" | bc)",
"gb": "$(echo "scale=2; $total_rss / 1024 / 1024" | bc)"
},
"vsz": {
"kb": "$total_vsz",
"mb": "$(echo "scale=2; $total_vsz / 1024" | bc)",
"gb": "$(echo "scale=2; $total_vsz / 1024 / 1024" | bc)"
},
"size": {
"kb": "$total_size",
"mb": "$(echo "scale=2; $total_size / 1024" | bc)",
"gb": "$(echo "scale=2; $total_size / 1024 / 1024" | bc)"
}
}
}
EOF
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment