コンソール端末からwebサーバにアクセスする際、クライアントを使うのが('A`)マンドクセというあなたに。
私はubuntu10.10を使っているが、他のバージョンやディストリビューションでも似たようなことはできるだろう。まずは必要なパッケージをインストールしてしまおう。
washi@wabuntu:~$ sudo aptitude install curlftpfs
curlftpfsの使い方を確認しよう。オプションは色々あるが、私の場合はこれだけでなんとかなっている。
washi@wabuntu:~$ curlftpfs server.address.jp ~/mountdir -o user=username:password
本来ならばこれだけで任意のディレクトリにマウント出来るはずだ。しかし、私の場合ここで以下のようなエラーが出た。
washi@wabuntu:~$ curlftpfs server.address.jp ~/mountdir -o user=username:password fusermount: failed to open /etc/fuse.conf: Permission denied
http://linux.dsplabs.com.au/forums/ubuntu-linux-help/ubuntu-fuse-failed-to-execに対処法が書かれているので、このとおりにやってみる。
washi@wabuntu:~$ sudo chmod +x /bin/fusermount washi@wabuntu:~$ sudo chmod a+rwx /etc/fuse.conf
これで変なメッセージは表示されなくなったはずだ。
次にやりたいことの手順を確認。私はホスティングサービスに、NINJA-TOOLSを使っているのでマウント先は~/ninjaとする。にんにん。
- $HOME下にninjaディレクトリを作成
- ウェブサーバのルートを~/ninjaにマウントする。
- アップロードは、~/ninjaへファイルをコピーするだけ!
- ~/ninjaをアンマウントし、空になった~/ninjaは削除する。
これらの手順をスクリプトにまとめる。シェルスクリプトの勉強を兼ねて、マウントするときは
washi@wabuntu:~$ ./myscript.sh mount
アンマウントするときは
washi@wabuntu:~$ ./myscript.sh umount
とするだけでサーバーのディレクトリをマウントできるようにした。
#! /usr/bin/env sh CMDNAME=`basename $0` MOUNTDIR=~/ninja # スクリプトの使い方を表示する usage(){ echo "使い方: $CMDNAME アクション" 1>&2 echo "アクション:" 1>&2 echo "\tmount - FTPサーバのROOTディレクトリを $MOUNTDIR にマウントします。" 1>&2 echo "\tumount - $MOUNTDIR をアンマウントします。" 1>&2 } # 引数が1個以外の時は使い方を表示 if [ $# -ne 1 ]; then usage exit 1 fi if [ "$1" = "mount" ]; then echo "mount アクションが選択されました。" 1>&2 echo "マウント先は $MOUNTDIR です。" 1>&2 mkdir -p $MOUNTDIR curlftpfs server.address.jp $MOUNTDIR -o user=username:password elif [ "$1" = "umount" ]; then echo "umount アクションが選択されました。" 1>&2 echo "$MOUNTDIR をアンマウント後、空になったディレクトリを削除します。" 1>&2 fusermount -u $MOUNTDIR rmdir $MOUNTDIR else # mount, umount以外のアクションを指定した場合は使い方を表示 usage exit 1 fi exit 0
これで、~/ninja 以下にファイルをコピーするだけでアップロードすることができるようになったはずだ。
0 件のコメント:
コメントを投稿