Arch Linux Wikiエントリ からすくみ、SMB私のArch Linux 4.20.6から)を介してWindows共有ドライブにアクセスするための最小限の設定だと思います。
Sudo pacman -Sy samba
Sudo echo "logging = systemd" >> /etc/samba/smb.conf
smb
サービスにはこの構成ファイルが必要なため、それ以外の場合は次のエラーでクラッシュします。
Job for smb.service failed because the control process exited with error code.
See "systemctl status smb.service" and "journalctl -xe" for details.
Sudo systemctl start smb
リモートのWindowsマシンが172.16.17.52
、共有名をリストすることができます
smbclient -L 172.16.17.52 -U MyUserName%MyPassword -W OurWindowsDomain
これらの中には、共有名OurRemoteDirectory
の「ディスク」タイプのサービスがあり、これにアクセスしたい、つまりファイルをそこに転送したい。
共有ドライブのOurRemoteDirectory
にアクセスできることを望んで、私は発行しました
smbclient 172.16.17.52/OurRemoteDirectory -U MyUserName%MyPassword -W OurWindowsDomain
しかし、それはこのエラーメッセージを生成しました:
Unable to initialize messaging context
172.16.17.52: Not enough '\' characters in service
このエラーを修正して共有ドライブのOurRemoteDirectory
にアクセスするにはどうすればよいですか?
これを修正するには、IPアドレスの前に2つのforwardスラッシュを追加します。
smbclient //172.16.17.52/OurRemoteDirectory -U MyUserName%MyPassword -W OurWindowsDomain
私を驚かせたのは、backwardスラッシュを追加する必要があることを示唆するエラーメッセージと、リストの共有名がsmbclient -L
は、IPアドレスの前にスラッシュを必要としません。
これで、リモートファイルシステムにアクセスするためのコマンドラインインターフェイスができました。
smb:>
接続を確立すると、 man smbclient
は、put
やget
などのファイルを転送するためのコマンドについて説明しています。
ポストスクリプトとして、v7.40以降 curl
は smb プロトコルもサポートするため、samba
パッケージにはsmbclient
共有ドライブとの間でファイルを転送するだけの場合は不要です。
# Upload local file to shared drive
curl --upload-file /home/me/local_file.txt --user "OurWindowsDomain/MyUserName:MyPassword" smb://172.16.17.52/OurRemoteDirectory/Path/To/Dir/
# Download file from shared drive
curl -o file_from_server.txt --user "OurWindowsDomain/MyUserName:MyPassword" smb://172.16.17.52/OurRemoteDirectory/Path/To/Dir/remote_file.txt
現在、curl
はリモートディレクトリの作成をサポートしていません。つまり、Path/To/Dir/
はすでに存在している必要があります。機能について簡単に説明します ここ 。