#!/bin/bash # Hard Disk Write Test Script, by Macie # Purpose: Test clean hd wirtes on the filsystem, useful for verifiying hd stability. # Also useful for over-writting drives with random data. # Use of ramdisk for source temp file is recommened FILE_SIZE="10" #File chunks in MB FILE_NAME="/tmp/${FILE_SIZE}MB.FILE" # Temp file FILE_MAXX="300000" # In MB, wite files until total size is reached FILE_PATT="01010101010101010101" WRITE_LOC=$1 CONVT="1" FSIZE="0" # Where do we write? if [ ! -d $WRITE_LOC ]; then echo "Usage: ./hd.test " echo $WRITE_LOC exit 1 fi # Make the tmp file first if [ -f "$FILE_NAME" ]; then TSIZE=`du -s $FILE_NAME` TSIZE=`echo $TSIZE| cut -d' ' -f1` else touch $FILE_NAME TSIZE=0 fi clear; echo "Creating temp file chunk..." let MSIZE=FILE_SIZE*1000 # Increase pattern size for faster writing echo "Building file pattern..." while [ $CONVT -lt 18 ]; do FILE_PATT="$FILE_PATT$FILE_PATT" let CONVT=CONVT+1 done sleep 1 CONVT=1 while [ $TSIZE -lt $MSIZE ]; do echo "Current size: $TSIZE KB ($FILE_NAME)" echo "$FILE_PATT" >> $FILE_NAME TSIZE=`du -s $FILE_NAME` TSIZE=`echo $TSIZE| cut -d' ' -f1` clear done # Start HD writing while true; do echo "Total written: $FSIZE MB" echo "Writing file: $CONVT" cp -f $FILE_NAME $WRITE_LOC/$CONVT let CONVT=CONVT+1 let FSIZE=FSIZE+$FILE_SIZE clear done echo "Finished..."