OSX FUSE インストール

dmgファイルからインストール
OSXFUSE Preference Paneにもチェックを入れてインストールしておく
(システム環境設定にパネルができます)

sshfs インストール

pkgファイルからインストール

ここまで終わったら一度、再起動

マウント

mkdir /Volumes/HOST
sshfs -o follow_symlinks -p 22 USER@HOST:/home/USER /Volumes/HOST

アンマウント

umount /Volumes/HOST

便利シェル

使い方

~/local/binとかにいれてパーミッション755にして使ってください # マウント ssshfs szyan@example.com “/home/szyn” # アンマウント ssshfs -u example.com

コード

ssshfs.sh

#!/bin/bash
# SSSHFS
#   sshfs を利用してサーバをマウントする便利shell
#
# http://blog.szyn.jp/
# Copyright 2013, Shuhei Suzuki
# Released under the MIT, BSD, and GPL Licenses.

# マウントするディレクトリ
VOLUMES='/Volumes'

# ヘルプ出力用
usage()
{
    echo "usage: ssshfs <オプション>"
    echo
    echo "使用可能なオプション:"
    echo "   USER@HOST DIR          USER ユーザで HOST サーバの DIR ディレクトリを"
    echo "                          ローカルの/Volumes/HOSTにマウントします"
    echo "   --unmount(-u) HOST     HOST サーバをアンマウントします"
    echo "   --help(-h)             ヘルプを表示します"
    exit 0
}

case "$1" in 
    # アンマウント
    "--unmount" | "-u")
        # @ が含まれている場合を考慮
        HOST=$2
        if [[ "$HOST" =~ @ ]]; then
            HOST="$(echo $HOST|cut -d'@' -f2)"
        else
        umount "/Volumes/$HOST"
        echo "unmount /Volumes/$HOST"
        ;;
    # ヘルプ
    "--help" | "-h")
        usage
        ;;
    # マウント
    *)
        # 空文字ならヘルプ表示
        if [[ -n "$1"]]; then
            usage;
        fi

        HOST=$1
        DIR=$2
        # -m | --mount オプションを考慮する
        if [[ "$HOST" =~ ^(-m|--mount)$ ]]; then
            HOST=$2
            DIR=$3
        fi
        # HOST部分の @ から前方を USER, 後方を HOST として使用
        # @ が含まれていなければシステムのユーザ名を USER とする
        if [[ "$HOST" =~ @ ]]; then
            USER="$(echo $HOST|cut -d'@' -f1)"
            HOST="$(echo $HOST|cut -d'@' -f2)"
        else
            USER="$(whoami)"
        fi
        # /Volumes/$HOSTディレクトリ作成
        if [[ ! -d "$VOLUMES/$HOST" ]]; then
            mkdir "$VOLUMES/$HOST"
        fi
        # mount
        sshfs -p 22 $USER@$HOST:/home/$USER "$VOLUMES/$HOST"
        echo "mount $VOLUMES/$HOST"
        ;;
esac


blog comments powered by Disqus

Published

02 March 2013

Tags