Skip to content

Instantly share code, notes, and snippets.

@mariusv
Created May 9, 2012 09:39
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mariusv/2643350 to your computer and use it in GitHub Desktop.
Save mariusv/2643350 to your computer and use it in GitHub Desktop.
Linux script to collect system statistics and send to your email
#!/bin/bash
SERVER="mydomain.com"
EMAIL_TO="your_email@gmail.com"
EMAIL_FROM="stat@mydomain.com"
# logged in users and what are they running
WHO=`w`
# processor stats
MPSTAT=`mpstat`
# virtual memory stats
VMSTAT=`vmstat`
# Top 20 memory hog applications
PS_MEM=`ps -A -o pid,pcpu,pmem,start_time,state,time,comm | perl -e '($_ = join "",<>) =~ s/(\t)/ /g; print;' |sort -g -k 3 -r | head -20`
# Top 10 CPU usage applications
PS_CPU=`ps -A -o pid,pcpu,pmem,start_time,state,time,comm | perl -e '($_ = join "",<>) =~ s/(\t)/ /g; print;' | sort -g -k 2 -r | head -10`
# memory usage in MB
FREE=`free -m`
PROCINFO=`procinfo`
# iptables status
IPTABLES=`iptables -nL`
# established connections
NETSTAT=`netstat -na |grep -i esta |grep -v 127.0.0.1 |sort -n -t. -k2`
# line divider
DL="=================================================================================="
FINAL="${DL}
`date`
${DL}
${SERVER}
${DL}
${WHO}
${DL}
${FREE}
${DL}
${MPSTAT}
${DL}
${VMSTAT}
${DL}
${PROCINFO}
${DL}
Top 10 CPU processes
${PS_CPU}
${DL}
Top 20 Memory processes
${PS_MEM}
${DL}
${IPTABLES}
${DL}
${NETSTAT}
${DL}
"
echo "${FINAL}" |
perl -e '($_ = join "",<>) =~ s/(\t)/ /g; print;' |
sendEmail -f "${EMAIL_FROM}" -u "${SERVER} comparator" -t ${EMAIL_TO}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment