#!/bin/bash if [ "$1" ] && [ -b $1 ]; then echo -n "Block: " for bs in 4K 8K 16K 32K 64K 128K 256K 512K 1M; do echo -n "$bs " done echo "" # Write test echo -n "Write: " for bs in 4096 8192 16384 32768 65536 131072 262144 524288 1048576; do count=$(( ( 512 * 1024 * 1024 / $bs ) )) speed=`dd if=/dev/zero of=$1 oflag=direct bs=$bs count=$count 2>&1 | grep " s, " | sed -e 's/.* s, //'` echo -n "$speed " done echo "" # Read test echo -n "Read: " for bs in 4096 8192 16384 32768 65536 131072 262144 524288 1048576; do count=$(( ( 512 * 1024 * 1024 / $bs ) )) speed=`dd if=$1 of=/dev/null iflag=direct bs=$bs count=$count 2>&1 | grep " s, " | sed -e 's/.* s, //'` echo -n "$speed " done echo "" else echo "No such block device: $1" fi