mac で samba/NAS/Windows 共有、コマンドラインで mount しようとしてハマる

mac のファイルのバックアップは普通なら Time Machine を使うわけですが、そんなに外部ストレージないし、必要なファイルだけバックアップを NAS や Windows サーバにコピーしたい、という要求があるわけですね。

そういう場合、一般的な mac ユーザであれば、Finder から NAS などに「移動」して、ファイルをドラックアンドペーストすればいいのですが、Linux も使う人ならもっとスマートに、自動化したり、シェルで処理したり、cron で自動化できないかと考えました。

という事で、mac でコマンドラインで cifs マウントについて

基本

mount -f smbfs user:smbpasswd@smbserver mount_point

が基本です。

myname@MacBookAir ~ % mkdir ~/cifs
myname@MacBookAir ~ % mount -t smbfs //username:smbpasswd@mysamba/Share ~/cifs
myname@MacBookAir ~ %


で File Exist でマウントできない場合は、既に、mysamba の共有元をマウント済みの場合に File Exist エラーとなります。マウント中のボリュームを全てアンマウントします。

myname@MacBookAir ~ % mount -t smbfs //myname:smbpasswd@mysamba/Share ~/cifs
mount_smbfs: mount error: /Users/myname/cifs: File exists
mount: /Users/myname/cifs failed with 64
myname@MacBookAir ~ %


Windows の共有をマウント

Windows でも同じですがなぜかエラーが出て数時間ハマります。パスに //user:passwd@windows/share と、ユーザ名:Password を入れると "zsh: event not found" となります。パスワードを別うちするとうまく動きます、原因はよくわかりません....が。

myname@macbookAir ~ % mount -t smbfs //myname:winpasswd@192.168.1.44/D ~/windows
zsh: event not found: @192.168.1.44/D
myname@macbookAir ~ %
myname@macbookAir ~ % mount -t smbfs //myname@192.168.1.44/D ~/windows
Password for 192.168.1.44: password
myname@macbookAir ~ %

でもシェルが吐いているエラーをよく見ると、"@ip_adder/share" の部分をコマンドとして解釈して not found としています。この部分をコマンドとして解釈する理由は、@ の直前のパスワードの部分に特殊記号が入っているからでした。どの文字とは書けないので、ご了承下さい。どうやら @ の直前に特殊記号があると、マズイようです。

教訓、mac でコマンドラインから smb mount する場合、smb パスワードに特殊記号は使えないケースがあるという事です。


SUSE Linux から Samba/Windows 共有をマウントしてバックアップ(openSUSE Leap15/SLE15)





by islandcenter | 2022-12-14 16:41 | MacOS | Comments(0)