32 lines
829 B
Bash
Executable File
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
|
|
}
|