-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcpu_alert.sh
More file actions
executable file
·27 lines (21 loc) · 1.09 KB
/
cpu_alert.sh
File metadata and controls
executable file
·27 lines (21 loc) · 1.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/bin/bash
cpuidle=$(top -b | head -n 3 | tail -n 1 | awk '{print $5}' | tr -d '%' | tr -d 'i' | tr -d 'd' | tr -d ',' | awk '{print int($1)}' )
cpuuse=$((100-$cpuidle))
if [ "$cpuidle" -lt 10 ]; then
SUBJECT="Critical CPU Utilization on Oroville Production Servername $(hostname) at $(date)"
MESSAGE="/tmp/cpu_mail.out"
TO="emailaddress@emailserver.com"
echo "CPU Current Usage is: $cpuuse%" >> $MESSAGE
echo "" >> $MESSAGE
echo "+------------------------------------------------------------------+" >> $MESSAGE
echo "Top CPU Process Using top command" >> $MESSAGE
echo "+------------------------------------------------------------------+" >> $MESSAGE
echo "$(top -bn1 | head -20)" >> $MESSAGE
echo "" >> $MESSAGE
echo "+------------------------------------------------------------------+" >> $MESSAGE
echo "Top CPU Process Using ps command" >> $MESSAGE
echo "+------------------------------------------------------------------+" >> $MESSAGE
echo "$(ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10)" >> $MESSAGE
mail -s "$SUBJECT" "$TO" < $MESSAGE
rm /tmp/cpu_mail.out
fi