This repository has been archived on 2022-02-20. You can view files and clone it, but cannot push or open issues/pull-requests.
bash-shell-network/all/modules/sshfs/sshfs.sh

32 lines
829 B
Bash
Executable File

#!/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
}