Skip to content

Instantly share code, notes, and snippets.

@yalab
Last active August 29, 2015 13:56
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 yalab/8954121 to your computer and use it in GitHub Desktop.
Save yalab/8954121 to your computer and use it in GitHub Desktop.
#!/bin/bash
INTERVAL=5
REBOOT_BORDER=10
MAILTO="rudeboyjet@gmail.com"
LOG_DIR="/var/log/loadavg"
mkdir -p $LOG_DIR
while :
do
LOAD_AVG=$( uptime | awk '{print $10}' | cut -d "." -f 1 )
DATE=$(date +%Y%m%d%H%M%S)
if [ $REBOOT_BORDER -lt $LOAD_AVG ];then
PS_PATH="${LOG_DIR}/load_avg_over-${DATE}.ps"
ps aux > $PS_PATH
TOP_PATH="${LOG_DIR}/load_avg_over-${DATE}.top"
top -n1 -b > $TOP_PATH
ATTACH_PATH="/tmp/attachment.${DATE}"
uuencode $PS_PATH $(basename $PS_PATH) > $ATTACH_PATH
uuencode $TOP_PATH $(basename $TOP_PATH) >> $ATTACH_PATH
mail -s "load avg over $REBOOT_BORDER" $MAILTO < $ATTACH_PATH
shutdown -r now
break
fi
sleep $INTERVAL
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment