#!/bin/sh
-
-[ -e /proc/sys/portals/debug ] && echo 0 > /proc/sys/portals/debug
-if [ ! -e client.txt ]; then
- if [ -e /usr/lib/dbench/client.txt ]; then
- cp /usr/lib/dbench/client.txt /mnt/lustre/client.txt
- elif [ -e /usr/lib/dbench/client_plain.txt ]; then
- cp /usr/lib/dbench/client_plain.txt /mnt/lustre/client.txt
- fi
-fi
-cd /mnt/lustre
-dbench $@
+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