18 lines
820 B
Bash
18 lines
820 B
Bash
|
#!/usr/bin/env bash
|
||
|
SARDIR=/var/log/sysstat
|
||
|
if [ -d /var/log/sa ]; then
|
||
|
SARDIR=/var/log/sa
|
||
|
fi
|
||
|
# echo "CPUUsed MEMUsed SWAPUsed IOWait"
|
||
|
for f in $(ls $SARDIR/sa[0123]*); do
|
||
|
# SARDate=$(stat $f | grep Modify | awk '{print $2}')
|
||
|
CPUUsed=$(sar -f $f | tail -1 | awk '{print 100-$NF}')
|
||
|
MEMUsed=$(sar -r -f $f | tail -1 | grep -Eo '[0-9]+\.[0-9]+' | head -1)
|
||
|
SWAPUsed=$(sar -S -f $f | tail -1 | awk '{print $4}')
|
||
|
IOWait=$(sar -f $f | tail -1 | awk '{print $6}')
|
||
|
echo "$CPUUsed $MEMUsed $SWAPUsed $IOWait" >> /tmp/sar-report.txt
|
||
|
done
|
||
|
cat /tmp/sar-report.txt | awk '{for (i=1;i<=NF;i++){a[i]+=$i;}} END {for (i=1;i<=NF;i++){printf "%.2f", a[i]/NR; printf "\t"};printf "\n"}' | awk '{ if ($1 > 50) print "high cpu",$1}; {if ($3 > 20) print "high swap", $3}; {if ($4 > 10) print "high iowait", $4}'
|
||
|
|
||
|
# rm -f /tmp/sar-report.txt
|