#!/bin/sh if [ "$1" = -q ] then exec 2>/dev/null shift fi web_content_pids() { top -w512 -bn1 -o '%MEM' | sed -e '1,/^$/d' | { while read line do set -- $line [ "${12} ${13}" = "Web Content" ] || continue echo $1 done } } set -- $(web_content_pids | tac) set -- $(printf "\055\055pid=%s " $*) sum() { local total=0 n for n in $* do total=$((total + n)) done echo $total } keep() { local n=$1 shift set -- $* while [ $# -ge "$n" ] do shift done printf '%s\n' "$*" } log= pct_log= sudo -- iotop -qq -b "$@" | while read line do case "$line" in "Total DISK"*) [ "$(sum $pct_log)" -ge 85 ] && over=y || over= pct_log= log=$(keep 9 $log) if [ "$over" ] then log="$log 1" over= if [ "$(sum $log)" -ge 3 ] then fireslay fi else log="$log 0" fi ;; "Current DISK"*) continue ;; *) set -- $line pct=${10%.*} pct_log="$pct_log $pct" ;; esac done