Version 11 (modified by chris, 3 years ago) (diff) |
---|
Table of Contents
SSHFS Mount Script
Following are a pair of scripts to mount and unmount files systems via SFTP using Fuse, they are used on Crin3.
mnt-sshfs
#!/bin/bash # http://fuse.sourceforge.net/sshfs.html # check that the script is being run by root if [[ "$(id -u)" != "0" ]] ; then echo "You must run '$0' as root or via sudo" exit 1 fi # the place file systems are to be mounted MOUNT_POINT="/media" if [[ ! -d "$MOUNT_POINT" ]]; then echo "It looks like $MOUNT_POINT doesn't exist?" exit 1 fi # check for server to mount on standard input if [[ $1 ]]; then SERVER=$1 elif [[ ! $1 ]]; then echo "Type the server you want to mount and then [ENTER]:" read server SERVER=$server fi # check the server is setup in ~/.ssh/config SSH_CONFIG=$(grep "Host $SERVER" ~/.ssh/config) if [[ ! $SSH_CONFIG ]]; then echo "It looks like you need to edit yur ~/.ssh/config" echo "to add entries like this for each server:" echo echo "Host example" echo " User root" echo " Hostname example.org" echo exit 1 fi # check if the mount point exists and if not create it if [[ ! -d "$MOUNT_POINT/$SERVER" ]]; then echo "Creating $MOUNT_POINT/$SERVER" mkdir "$MOUNT_POINT/$SERVER" || { echo "Failed to create $MOUNT_POINT/$SERVER" ; exit 1 ; } fi # check is the file system appears to already be mounted DF=$(df | awk -F' ' '{ print $6 }' | grep "$MOUNT_POINT/$SERVER") if [[ $DF ]]; then echo "It appears that $SERVER is already mounted at $DF?" exit 1 fi # Mount the file system sshfs $SERVER:/ $MOUNT_POINT/$SERVER/ && \ # if this succeeded { echo "Mounted $SERVER:/ on $MOUNT_POINT/$SERVER/" ; exit 0 ; } || \ # if this failed { echo "Problem mounting $SERVER:/ $MOUNT_POINT/$SERVER/" ; exit 1 ; }
umnt-sshfs
#!/bin/bash # http://fuse.sourceforge.net/sshfs.html # check that the script is being run by root if [[ "$(id -u)" != "0" ]] ; then echo "You must run '$0' as root or via sudo" exit 1 fi # the place file systems are to be mounted MOUNT_POINT="/media" if [[ ! -d "$MOUNT_POINT" ]]; then echo "It looks like $MOUNT_POINT doesn't exist?" exit 1 fi # check for server to unmount on standard input if [[ $1 ]]; then SERVER=$1 elif [[ ! $1 ]]; then echo "Type the server you want to unmount and then [ENTER]:" read server SERVER=$server fi # check if the mount point exists if [[ ! -d "$MOUNT_POINT/$SERVER" ]]; then echo "It looks like "$MOUNT_POINT/$SERVER" doesn't exist?" exit 1 fi # check if the file system appears to already be mounted DF=$(df | awk -F' ' '{ print $6 }' | grep -w "$MOUNT_POINT/$SERVER") if [[ $DF ]]; then # unmount the filesystem fusermount -u $MOUNT_POINT/$SERVER && \ # if success { echo "Umounted $SERVER at $DF" ; exit 0 ; } || \ # if mounting failed { echo "Problem unmounting $MOUNT_POINT/$SERVER" ; exit 1 ; } else echo "It appears that $SERVER is not mounted at $MOUNT_POINT/$SERVER" exit 1 fi