#!/bin/bash # depends on sshfs fuse for ssh module_load filesystem # mounted module_load net-utils # host_reachable function smount(){ local HOST local PORT HOST=$(sed 's/.*@\(.*\):.*/\1/' <<< "$1") # TODO search for -p and extract port, this assumes 3 and 4 position PORT=$([[ $3 = "-p" ]] && echo $4 || echo 22) [[ ! $(host_reachable $HOST $PORT) ]] && echo host $HOST not reachable, aborting mount && return 1 if [[ $(mounted $2) ]]; then echo "remote $1 already mounted at $2, aborting mount" else echo "mounting via ssh" echo sshfs "$*" mkdir -p $2 # can add any options after mount point directory like -o default_permissions sshfs "$@" fi } function usmount(){ if [[ $(mounted $1) ]]; then echo "unmounting remote file system at $1" fusermount -u $1 else echo "nothing mounted at $1, aborting unmount" fi }