Skip to content

Instantly share code, notes, and snippets.

@Spencer-Doak
Created August 31, 2021 18:52
Show Gist options
  • Save Spencer-Doak/bc4e6176c5c6cd61ec023a8f4614cf0f to your computer and use it in GitHub Desktop.
Save Spencer-Doak/bc4e6176c5c6cd61ec023a8f4614cf0f to your computer and use it in GitHub Desktop.
Retrieve and display information about CPU utilization, memory consumption, and network listeners.
#!/usr/bin/env bash
# Record process and memory information
function log_output() {
local lines_to_print="$1"
while IFS= read -r line_to_print; do
echo "[$(date -Ins --utc)] ${line_to_print}"
done <<< "${lines_to_print}"
}
log_output '===== BEGIN PROC & MEM INFO GATHERING ====='
log_output 'OVERALL MEMORY METRICS'
log_output "$(free --si --total -h)"
# Get info about per-process resource utilization
log_output "TOP CPU CONSUMERS:"
log_output "$(top -s -c -b -n 1 -w 512 -o '%CPU' | head -n 21)"
log_output "TOP MEMORY CONSUMERS:"
log_output "$(top -s -c -b -n 1 -w 512 -o '%MEM' | head -n 21)"
log_output 'NETWORK LISTENERS'
log_output "$(netstat -tulpn)"
log_output '===== END OF PROC & MEM INFO GATHERING ====='
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment