diff --git a/teil15/sdcardtester b/teil15/sdcardtester new file mode 100755 index 0000000..db16178 --- /dev/null +++ b/teil15/sdcardtester @@ -0,0 +1,59 @@ +#! /usr/bin/bash + +MOUNTPOINT='/mnt/speedtest' + +# number of threads used during testing +nproc=4 + +if [ "$EUID" -ne 0 ] + then echo "Please run as root" + exit 1 +fi + +if [ "${1}" ]; then + DEVICE=${1} + PARTITION=${DEVICE}1 + echo "using device ${DEVICE}" +else + echo "using default device ${DEVICE}" +fi + +# check if sd card is inserted +if [ -e ${DEVICE} ]; then + echo "card inserted" +else + echo "no sd card found" + exit 2 +fi + +echo "deleting partion #1" +sfdisk --delete -w ${DEVICE} 1 && sync + +echo "creating new ext4 partition" +echo ",," |sfdisk ${DEVICE} && sync + +echo "creating ext4 filesystem on ${PARTITION}" +echo "y" |mkfs.ext4 ${PARTITION} + +#check if mount point is available, create otherwise +if [ ! -d "${MOUNTPOINT}" ]; then mkdir "${MOUNTPOINT}"; fi +mount -t ext4 "${PARTITION}" "${MOUNTPOINT}" +cd "${MOUNTPOINT}" +echo "preparing tests" +sysbench fileio --file-total-size=8G prepare > /dev/null + +# Test with 16K block size, random read/write +echo "run test with 16K block size" +sysbench fileio --file-block-size=16K --file-total-size=8G --file-test-mode=rndrw --threads=$(nproc) run + +# Test with 1M block size, random read/write +echo "run test with 1M block size" +sysbench fileio --file-block-size=1M --file-total-size=8G --file-test-mode=rndrw --threads=$(nproc) run + +# cleanup the test files +echo "cleaning up test files" +sysbench fileio --file-total-size=8G cleanup +cd - >/dev/null +umount ${PARTITION} + +