#! /bin/bash
#----------------------------------------------------------------------
# Description: Watch raw read write bytes stats per block device in real time
# Author: Artem S. Tashkinov
# Created at: Sat Apr 6 18:34:33 YEKT 2013
# Computer: localhost.localdomain
# System: Linux 3.8.7-ic on i686
#
# Copyright (c) 2013 Artem S. Tashkinov All rights reserved.
#
#----------------------------------------------------------------------
export LANG=en_US.UTF-8
dsrc=/sys/block
cd $dsrc || die "$dsrc not found"
doformat()
{
awk "{printf \"%-7s %-18'd %-18'd\", \$1, \$4*512, \$8*512}"
}
resolve()
{
out=`egrep "^/dev/$1 " /proc/mounts | awk '{print $2}'`
root=`grep "root=/dev/$1" /proc/cmdline`
test -n "$root" && out=/
echo $out # Otherwise awk may print nothing
}
while :; do
clear
echo "Device Read bytes Written bytes Mount point"
for i in sd*; do
for j in $i/$i*; do
dev=`echo $j | awk -F "/" '{print $2}'`
( echo -n "$dev "; cat $j/stat ) | doformat
resolve $dev
done
( echo -n "$i "; cat $i/stat ) | doformat
echo
echo
done
sleep 2
done