sambaの速度を測るのにsambaをwgetのように使える smbget
を使おうとしたのですが以前使えていた気がする -p
オプションが無くなっています.
$ bash -c "read -sp \"passwd: \" passwd; smbget smb://smbhost/share/data -U user -p $passwd -O > /dev/null" passwd: -p: unknown option
usageを見ると確かにありません.
$ smbget --usage Usage: smbget [-?aneruRODqv] [-?|--help] [--usage] [-w|--workgroup=STRING] [-U|--user=STRING] [-a|--guest] [-n|--nonprompt] [-d|--debuglevel=INT] [-e|--encrypt] [-r|--resume] [-u|--update] [-R|--recursive] [-b|--blocksize=INT] [-o|--outputfile=STRING] [-O|--stdout] [-D|--dots] [-q|--quiet] [-v|--verbose] [-f|--rcfile=STRING]
-pを無くせばプロンプトが出てきますが毎回入力するのは面倒なのでどうにか出来ないかなとmanを見てみます.
man smbget
-U, --user=username[%password] Username (and password) to use
-U
オプションに一緒に書けるようです.デミリタは要らないよう.
$ bash -c "read -sp \"passwd: \" passwd; smbget smb://smbhost/share/data -U user$passwd -O > /dev/null"
デミリタに :
を指定しても動きました.
$ bash -c "read -sp \"passwd: \" passwd; smbget smb://smbhost/share/data -U user:$passwd -O > /dev/null"
他にもSMB URLにも書けるようです.
man smbget
SMB URLS SMB URL's should be specified in the following format: smb://[[[domain;]user[:password@]]server[/share[/path[/file]]]]
ただし,この書き方だとSMB URLが環境変数が展開されてSTDOUTに表示されるのでパスワードを隠したい場合は使えません.
$ bash -c "read -sp \"passwd: \" passwd; smbget smb://user:$passwd@smbhost/share/data -O > /dev/null" smb://user:password@smbhost/share/data(100.00%) at 130.69MB/s ETA: 00:00:0008 Downloaded 2.17GB in 17 seconds
それを言うと -U
の場合もプロセスにパスワードが表示されてしまうのであまりよろしくないですね.てことでとりあえずこんな感じならいいかな?
$ bash -c "read -sp \"passwd: \" passwd; echo $passwd | smbget smb://smbhost/share/data -U user -O > /dev/null"
このときのプロセス
$ ps -ef|grep smbget mk 12626 14620 0 22:38 pts/6 00:00:00 bash -c read -sp "passwd: " passwd; echo $passwd | smbget smb://smbhost/share/data -U user -O > /dev/null mk 13263 12626 49 22:39 pts/6 00:00:00 smbget smb://smbhost/share/data -U user -O
あれ?結局最初に戻って…….
余録(キャッシュクリア)
速度を測りたいけど2回目以降はキャッシュされてしまうのでキャッシュをクリアして測る.
以下はlocalhostで試してるので差が出ているが,ネットワーク経由だとネットワークがボトルネックになり差が出なかった.でも一応やっておく.
1回目
smb://smbhost/share/data(100.00%) at 28.12MB/s ETA: 00:00:00434 Downloaded 2.17GB in 79 seconds
2回目
smb://smbhost/share/data(100.00%) at 130.69MB/s ETA: 00:00:0008 Downloaded 2.17GB in 17 seconds
キャッシュをクリア
$ sudo sh -c "sync; echo 3 > /proc/sys/vm/drop_caches"
もう一回
smb://smbhost/share/data(100.00%) at 27.43MB/s ETA: 00:00:0044 Downloaded 2.17GB in 81 seconds
※/proc/sys/vm/drop_caches
についてはKernel Documentsの admin-guide/sysctl/vm.rst.gz
あたりを参照のこと.
$ zgrep ^drop_caches -A42 /usr/share/doc/linux-doc-5.3/Documentation/admin-guide/sysctl/vm.rst.gz
参考URL
環境
環境1
$ dpkg-query -W samba smbclient bash bash 4.4.18-2ubuntu1.2 samba 2:4.7.6+dfsg~ubuntu-0ubuntu2.14 smbclient 2:4.7.6+dfsg~ubuntu-0ubuntu2.14 $ lsb_release -dr Description: Ubuntu 18.04.3 LTS Release: 18.04 $ uname -rvm 4.15.0-72-generic #81-Ubuntu SMP Tue Nov 26 12:20:02 UTC 2019 x86_64
環境2
$ dpkg-query -W samba smbclient bash bash 5.0-5 samba 2:4.11.1+dfsg-3 smbclient 2:4.11.1+dfsg-3 $ lsb_release -dr Description: Debian GNU/Linux bullseye/sid Release: unstable $ uname -rvm 5.3.0-3-amd64 #1 SMP Debian 5.3.15-1 (2019-12-07) x86_64