#!/bin/rc # # growth watch the growth of a file # # Does not cope with midnight properly but will recover on the # next update. # if (~ $#* 0){ echo usage: $0 '...' exit 1 } @{ while ( ~ 1 1 ){ for ( file in $* ){ if ( test -f $file ) echo `{ls -lu $file} `{date} sleep 2 } } } | awk ' BEGIN { num = 0; SPM = 60; # sec per min SPH = 60 * 60; # sec per hour printf("%-15s %-12s %-12s %-9s %-9s %-6s\n", "File", "sz", "Time", "BPS", "avBPS", "trend"); } { file=$10; gsub("^.*/", "", file); size = $6; split($14, hm, ":"); time = hm[1] * SPH + hm[2] * SPM + hm[3]; if (num == 0){ # first time through otime = time; osize = size; } num++; # number of records sum += rate; # overall data rate delta = time - otime; # time since last measure elap += delta; # total elapsed time grow = size - osize; # growth in size mean = sum / num; # mean growth rate rate = (delta == 0)? 0: grow / delta; # find data rate chg = (mean == 0)? 0: rate / mean; # change in data rate printf("%-15s %-12d %-12s %-9.1f %-9.1f %6.1f%%\n", file, size, hms(elap), rate, mean, chg * 100); otime = time; osize = size; orate = rate; } function hms(t, h, m, s){ s = t; h = int(s / SPH); s -= h * SPH; m = int(s / SPM); s -= m * SPM; return(sprintf("%02d:%02d:%02d", h, m, s)); } '