※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

  • Sambaをマウントして自動バックアップ
apt-get install smbfs
smbmount //source/dir /mnt2 -o username=ユーザーID,
password=パスワード,codepage=cp932,iocharset=euc-jp,
uid=1001,gid=102

cp -rupdf source target
オプション:
 r:ディレクトリ再帰, u:update, p:属性・タイムスタンプ保存
 d:symlinkたどらず, f:強制上書き


samba2 までは、
[global]
   client code page = 932
   coding system = SJIS/EUC/CAP/HEXなど
の2つのパラメーターを使用してきた。samba2では文字コード変換をsambaが行ってきた。
これをsamba3で設定しても動かないと悩んでいたわけだが、このページの説明を読むと、パラメーター自体が変わった。文字コード変換はOSの標準関数により変換が行われている。
肝心なコマンドはこちら。

[global]
 unix charset = CP932/EUCJP-MS/UTF-8など
 dos charset = CP932
 display charset = CP932/EUCJP-MS/UTF-8など

unix charset: UNIX上のファイルシステムに用いられている文字コード(符号化形式)。ただし、Sambaが内部的に使用する文字コードやsmb.confをはじめとする各種設定ファイルの文字コードも同時に変更される
dos charset: Windows側で利用されている文字コードを指定。日本語を利用する場合は、CP932または同等の文字コードを設定する
display charset: SWATの画面に表示される文字コードを指定。日本語を使用する場合に指定する文字コードは、Sambaのバージョンによって異なる

各パラメータの値には、iconv()関数がサポートする各種ロケール名を指定してください(注)。
iconv()関数の実装により、サポートされているロケール名は異なります。本稿では、GNU libiconvおよびglibc付属のiconv()に前述した日本語対応パッチを適用したものを例に説明します。

日本語ファイル名を用いる場合の典型的な設定は、以下のようになります。
[global]
 unix charset = EUCJP-MS/CP932/UTF-8 
 dos charset = CP932
 display charset = CP932  
Samba 3.0.2以降の場合は、display charsetをunix charsetと同じ値に設定する必要がある。  

■CAPとHEXのサポート
 Samba 2.2系列まではcoding systemパラメータにCAPやHEXといった値があり、広く用いられています。しかし、これらはその性格上iconv()関数ではサポートされないため、Samba 3.0系列のVFS機能を使用してサポートするようになった。
 CAPについては、

[global]
 unix charset    = CP932
[cap_share1]
 vfs objects = cap  

Samba 3.0系列におけるCAP(およびHEX)のサポート   vfs_capモジュールを有効にする。capは必ず小文字で指定すること。なおHEXモジュールがインストールされた環境でHEXを有効にするには、capの代わりにhexと指定すればよい。

のように、unix charsetとしてCP932を指定したうえで共有単位にvfs_capというVFSモジュールを併用することにより実現します。

 HEXについては、Samba本体に同梱されていないため、Samba 3.0国際化プロジェクトの成果物に同梱されているHEXモジュールを使用する必要があります。設定方法などは、CAPと同様です。


■smbmount で日本語ファイル名が化ける点について
http://bbs.fedora.jp/read.php?FID=4&TID=113
mount -t smbfs -o codepage=cp932,iocharset=euc-jp //Windowsマシン名/共有名 /home/user/マウントポイント

mount -t smbfs -o codepage=cp932,iocharset=UTF-8 //Windowsマシン名/共有名 /home/user/マウントポイント


mount -t smbfs -o codepage=cp932,iocharset=euc-jp,username=2ptbl1 //ptb2/nippou /home/nippou/ptb2