📂
smbclientの基本的な操作方法
はじめに
smbclientの基本的な操作方法と、よく使うコマンド、主なエラーについてまとめたものです。
smbclientについて馴染みがない方を対象に記載しています。
動作確認環境
- OS: MIRACLE LINUX release 8.6 (Peony)
- Sambaパッケージ: samba-client-4.15.5-5.el8.x86_64
- sambaのソースコード参照・引用元
https://github.com/samba-team/samba/tree/samba-4.15.5
接続
接続先IPアドレス:192.168.1.101
, 共有フォルダ: share
, ユーザ名:user
,パスワード: password
の場合
smbclient //192.168.1.101/share -U user%password
パスワードをパラメータに含めない場合
-U
から%password
を削除します。
smbclient //192.168.1.101/share -U user
共有フォルダ内の任意のディレクトリを初期ディレクトリに設定する場合
-D [ディレクトリ名]
を指定します。
smbclient //192.168.1.101/share -D path/to/dir -U user%password
共有フォルダの確認
smbclient -L 192.168.1.101 -U user%password
移動・参照
ディレクトリ移動(cd)
cd
はサーバ上のカレントディレクトリを変更します。
-
path/to/dir
に移動する場合cd "path\to\dir"
実行後に出力される文字列
- OK:なし
- エラー:存在しないディレクトリを指定した場合:
cd 指定したディレクトリ: エラー文字列
cd \path\to\dir\: NT_STATUS_OBJECT_PATH_NOT_FOUND
非対話モード実行時のステータスコード
- 0:OK
- 1:エラー
ファイル・ディレクトリ一覧表示(dir)
dir
は、カレントディレクトリの一覧を表示します。
-
path/to/dir
の一覧を表示dir "path\to\dir\*"
実行後に出力される文字列
- OK:出力例
ファイル名 属性を示す文字 ファイルサイズ(バイト) 最終更新日時
. D 0 Tue Oct 10 18:07:15 2023 .. D 0 Sat Dec 29 23:37:19 2007 MIRACLELINUX-8.6-rtm-x86_64.iso A 11364466688 Wed Nov 16 10:57:20 2022 MIRACLELINUX-8.8-rtm-x86_64.iso A 12540968960 Tue Oct 10 15:24:11 2023 961149212 blocks of size 1024. 38242560 blocks available
- エラー:存在しないディレクトリを指定した場合
エラー文字列 listing 指定したディレクトリの共有フォルダからのフルパス
smb: \> dir path NT_STATUS_NO_SUCH_FILE listing \path
非対話モード実行時のステータスコード
- 0:OK
- 1:エラー
ダウンロード
ファイルのダウンロード(get)
get
は、サーバ上のファイルをダウンロードします。
- コマンドとオプションの指定方法
get <remote file name> [local file name]
-
OS\Linux\ML8\MIRACLELINUX-8.8-rtm-x86_64.iso
をダウンロードget "OS\Linux\ML8\MIRACLELINUX-8.8-rtm-x86_64.iso"
-
OS\Linux\ML8\MIRACLELINUX-8.8-rtm-x86_64.iso
をml8.8.iso
としてダウンロードget "OS\Linux\ML8\MIRACLELINUX-8.8-rtm-x86_64.iso" "ml8.8.iso"
実行後に出力される文字列
- OK:出力例
ファイル名 属性を示す文字 ファイルサイズ(バイト) 最終更新日時
getting file \OS\Linux\ML8\MIRACLELINUX-8.8-rtm-x86_64.iso of size 12540968960 as ml8.8.iso (52906.2 KiloBytes/sec) (average 52906.2 KiloBytes/sec)
- エラー:存在しないファイルを指定した場合
エラー文字列 opening remote file 指定したディレクトリの共有フォルダからのフルパス
smb: \> get hoge.txt NT_STATUS_OBJECT_NAME_NOT_FOUND opening remote file \hoge.txt
指定した条件に一致するファイルをダウンロード(mget)
- コマンドとオプションの指定方法
mget <mask>
-
OS\Linux\ML8\MIRACLELINUX-8.
から始まるファイルを全てダウンロードmget "OS\Linux\ML8\MIRACLELINUX-8.*"
-
recurse
コマンドを事前に実行することで、サブディレクトリ内のファイルもダウンロードできます。 -
OS\Linux\ML8
ディレクトリ内のファイルを全てダウンロードrecurse mget "OS\Linux\ML8"
- ファイルのダウンロード前に、ファイル名の確認を求めない。
prompt
コマンドを実行することで、ファイル名の確認を求めないように設定できます。
recurse
と合わせて使うことで、ディレクトリを確認せずにすべてダウンロードできます。prompt recurse mget "OS\Linux\ML8"
アップロード
ファイルのアップロード(put)
- コマンドとオプションの指定方法
put <local file name> [remote file name]
-
ml8.8.iso
をアップロードput "ml8.8.iso"
-
ml8.8.iso
をOS\Linux\ML8\MIRACLELINUX-8.8-rtm-x86_64.iso
としてアップロードput "ml8.8.iso" "OS\Linux\ML8\MIRACLELINUX-8.8-rtm-x86_64.iso"
指定した条件に一致するファイルをアップロード(mput)
- コマンドとオプションの指定方法
mput <mask>
-
OS\Linux\ML8\MIRACLELINUX-8.
から始まるファイルを全てアップロードmput "OS\Linux\ML8\MIRACLELINUX-8.*"
-
recurse
コマンドを事前に実行することで、サブディレクトリ内のファイルもアップロードできます。-
OS\Linux\ML8
ディレクトリ内のファイルを全てアップロードrecurse mput "OS\Linux\ML8"
- ファイルのアップロード前にファイル名の確認を求めない。
prompt
コマンドを実行することで、ファイル名の確認を求めないように設定できます。
recurse
と合わせて使うことで、ディレクトリを確認せずにすべてアップロードできます。prompt recurse mput "OS\Linux\ML8"
-
ディレクトリ作成、ファイル削除
ディレクトリの作成(mkdir)(md)
mkkdir
,md
は、サーバ上にディレクトリを作成します。
- コマンドとオプションの指定方法
mkdir <directory name>
-
share
ディレクトリを作成mkdir "share"
- エラー:
既に存在するディレクトリを指定した場合smb: \> mkdir share NT_STATUS_OBJECT_NAME_COLLISION creating directory share
ファイルの削除(del)
- コマンドとオプションの指定方法
del <remote file name>
-
OS\Linux\ML8\MIRACLELINUX-8.8-rtm-x86_64.iso
を削除del "OS\Linux\ML8\MIRACLELINUX-8.8-rtm-x86_64.iso"
条件に一致したファイルやディレクトリの削除(deltree)
- コマンドとオプションの指定方法
deltree <mask>
-
OS\Linux\ML8\
ディレクトリ内のファイルを全て削除deltree "OS\Linux\ML8"
参考資料
- man smbclient (samba 4.15.5)
Discussion