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表示に色を付けてみた