【Linux】 Windows上ファイルのアクセス ( mount cifs ) サンプルシェルスクリプト ― 2009年02月01日 09:08
メモ : 物忘れがひどく?なった私の覚書です。
☆ Linuxマシン側 設定ポイント
・Windows上のファイルにアクセスする為には samba-client パッケージが必要・・・たぶん (^-^;
インストールされているか、まず確認!
# rpm -aq | grep samba-client
samba-client-3.0.25b-1
インストールされていれば上記のように何か表示される。
もし、このパッケージがインストールされていない場合は、
yumコマンドでインストールする。
# yum install samba-client
・iptables によりパケットの検査が行われたりすると上手く接続できない場合がある。
そんな時は以下のように Windows マシンのIPアドレス・ポート(139,445)を開放する ように設定を行う。
# iptables -A OUTPUT_ALLOW -m state --state NEW -p tcp -d
192.168.1.123 --dport 139 -j OK
# iptables -A OUTPUT_ALLOW -m state --state NEW -p tcp -d
192.168.1.123 --dport 445 -j OK
☆ Windowsマシン側 設定ポイント
Windows側も準備が必要!
ファイルのアクセスを許可するフォルダの共有化と、
Windowsファイアウォールを有効としている場合はLinux側からのアクセスに対して 許可(ポート開放)が必要となる。
・ファイルアクセス対象となるフォルダの共有化設定
Wondowsエクスプローラでフォルダを選択
右クリックメニューの「共有とセキュリティ」を選択
① D:\FILE を共有化する。 ・・・例) D:ドライブのFILEフォルダ
Wondowsエクスプローラでフォルダを選択
右クリックメニューの「共有とセキュリティ」を選択
---<共有タグ>---
「このフォルダを共有する」を選択
※ 共有名(=FILE)等設定値はデフォルト値のまま。
② アクセス許可
---<セキュリティタグ>---
everyone = フルコントロール 設定
※ 任意ユーザ名を作成しアクセスできるようにする方が理想かも
・Windowsファイアウォールの設定
① Windowsファイアウォール = "有効" 設定 ?
もし、"無効" (・・・危ないよ!) となっている場合は②は必要なし
② 「例外」タグの「ファイルとプリンタ共有」をチェック、
さらに【編集】ボタンを押下しの TCP 139 及び TCP 445 をチェックする。
○ シェルスクリプト mount cifs
---<Windowsファイルマウント サンプルシェルスクリプト>----------
#!/bin/bash
SRC_PATH="//192.168.1.123/FILE"
MNT_PATH="/mnt/win"
# マウントポイント作成
if [ ! -d ${MNT_PATH} ]; then
/bin/mkdir -p ${MNT_PATH}
fi
# マウント済チェック
mount_flag=`/bin/mount | /bin/grep "${MNT_PATH}" | /usr/bin/wc -l`
if [ ${mount_flag} -ne 0 ]; then
exit 0
fi
# マウント!
/bin/mount -t cifs -o username=Administrator,password=※) ${SRC_PATH} ${MNT_PATH}
# ※) ユーザ(Administrator)のパスワードを設定 retval=$?
if [ ${retval} -ne 0 ]; then
echo "mount error !"
exit 1
fi
exit 0
これで、ls コマンドを実行してWindows上のファイルが見えるかチェック!
# ls -la /mnt/win
何かファイルが見えたらOK (^-^)v
---<Windowsファイルアンマウント サンプルシェルスクリプト>----------
#!/bin/bash
MNT_PATH="/mnt/win"
# アンマウント済チェック
mount_flag=`/bin/mount | /bin/grep "${MNT_PATH}" | /usr/bin/wc -l`
if [ ${mount_flag} -eq 0 ]; then
exit 0
fi
# アンマウント!
/bin/umount ${MNT_PATH}
retval=$?
if [ ${retval} -ne 0 ]; then
echo "umount error !"
exit 1
fi
exit 0
コメント
トラックバック
このエントリのトラックバックURL: http://inari.asablo.jp/blog/2009/02/01/4123912/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。