#!/bin/sh
-
-[ -e /proc/sys/portals/debug ] && echo 0 > /proc/sys/portals/debug
-cd /mnt/lustre
-cp /usr/src/lustre/demos/dbench/client.txt .
-/usr/src/lustre/demos/dbench/dbench $1
+MOUNT=${MOUNT:-/mnt/lustre}
+DIR=${DIR:-$MOUNT/`hostname`}
+#[ -e /proc/sys/lnet/debug ] && echo 0 > /proc/sys/lnet/debug
+mkdir -p $DIR
+TGT=$DIR/client.txt
+DBENCH_LIB=${DBENCH_LIB:-/usr/share/dbench}
+SRC=${SRC:-$DBENCH_LIB/client.txt}
+[ ! -s $TGT -a -s $SRC ] && echo "copying $SRC to $TGT" && cp $SRC $TGT
+SRC=${SRC:-/usr/lib/dbench/client.txt}
+[ ! -s $TGT -a -s $SRC ] && echo "copying $SRC to $TGT" && cp $SRC $TGT
+SRC=/usr/lib/dbench/client_plain.txt
+[ ! -s $TGT -a -s $SRC ] && echo "copying $SRC to $TGT" && cp $SRC $TGT
+[ ! -s $TGT ] && echo "$0: $TGT doesn't exist (SRC=$SRC)" && exit 1
+cd $DIR
+echo "running 'dbench $@' on $PWD at `date`"
+dbench -c client.txt $@
+RC=$?
+[ $RC -ne 0 ] && killall -9 dbench
+exit $RC