2009/07/23(Thu)Sambaの一括マウントスクリプト
2009/07/23 10:33
遠隔地上の同一LAN内の転送速度はわりかし速いにしても、転送操作が2回あるので面倒…。
WindowsにSFTPサーバーを立てるのも設定が難しかったり、文字化けしてUTF-8な通信ができなかったり、結局PortForwardが必要になるなど、面倒だった。
というわけで、外部から到達できるLinuxサーバーにSambaマウントするという方法を試してみた。
結果から言うと、やはりSambaは文字コードの設定にしてもやりやすく、問題なくあっさりマウントできて楽だった。外部からアクセスできるLinuxサーバーは公開鍵認証しているので、インターネット越しでも安全なアクセスとなっている。
しかし、その時打ったmountコマンドがなかなか長かった上、いくつもマウントしたかったので、ちょっとシェルスクリプトを書いてみた。
DRVSに管理共有しているコンピュータ名/ドライブレターをスペース区切りで書き、スクリプト起動後にパスワードを打てばよい。
ユーザー名の部分は適宜変更のこと。
#!/bin/sh DRVS="win1/C win1/D win2/C win2/D win3/F" echo "Input password to mount samba drives." stty -echo read password stty echo for drv in ${DRVS}; do if [ ! -e /mnt/${drv} ]; then mkdir -p /mnt/${drv} fi if [ `mount | grep ${drv} | wc -l` -ne 0 ]; then umount /mnt/${drv} fi printf "mounting //%-20s" "${drv}\$..." mount -t cifs -o username=kero,password=${password} //${drv}\$ /mnt/${drv} >/dev/null 2>&1 if [ $? -eq 0 ]; then echo -e "[ \e[32mO K\e[0m ]" else echo -e "[ \e[31mN G\e[0m ]" fi done別に大したことはしていないけど、色々シェル周りの勉強になった。
- sttyでパスワード入力のエコーバックを制御してみた
- bashでのprintfを試してみた
- OKやNG表示に色を付けてみた