diff options
Diffstat (limited to 'contrib')
-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 |