diff options
| -rwxr-xr-x | contrib/sshfs-benchmark.bash | 53 | 
1 files changed, 53 insertions, 0 deletions
| diff --git a/contrib/sshfs-benchmark.bash b/contrib/sshfs-benchmark.bash new file mode 100755 index 0000000..b3c9646 --- /dev/null +++ b/contrib/sshfs-benchmark.bash @@ -0,0 +1,53 @@ +#!/bin/bash + +set -eu + +function cleanup { +	fusermount -u -z gocryptfs.mnt || true +	rm -Rf "$SSHFS_TMP" +	fusermount -u -z sshfs.mnt +	cd / +	rm -Rf "$LOCAL_TMP" +} + +function prepare_mounts { +	LOCAL_TMP=$(mktemp -d -t "$MYNAME.XXX") +	cd $LOCAL_TMP +	echo "working directory: $PWD" +	mkdir sshfs.mnt gocryptfs.mnt +	sshfs $HOST:/tmp sshfs.mnt +	echo "sshfs mounted: $HOST:/tmp -> sshfs.mnt" +	trap cleanup EXIT +	SSHFS_TMP=$(mktemp -d "sshfs.mnt/$MYNAME.XXX") +	mkdir $SSHFS_TMP/gocryptfs.crypt +	gocryptfs -q -init -extpass "echo test" -scryptn=10 $SSHFS_TMP/gocryptfs.crypt +	gocryptfs -q -extpass "echo test" $SSHFS_TMP/gocryptfs.crypt gocryptfs.mnt +	echo "gocryptfs mounted: $SSHFS_TMP/gocryptfs.crypt -> gocryptfs.mnt" +} + +function etime { +	T=$(/usr/bin/time -f %e -o /dev/stdout "$@") +	printf %20.2f "$T" +} + +MYNAME=$(basename "$0") +HOST=$1 + +prepare_mounts + +# Make the bash builtin "time" print out only the elapsed wall clock +# seconds +TIMEFORMAT=%R + +echo +echo "$MYNAME:    sshfs  gocryptfs-on-sshfs" +echo -n "git init  " +etime git init -q sshfs.mnt/git1 +etime git init -q gocryptfs.mnt/git1 +echo + +git init -q git2 +echo -n "rsync     " +etime rsync -a --no-group git2 sshfs.mnt +etime rsync -a --no-group git2 gocryptfs.mnt +echo | 
