- servicename
-
servicename就是你要使用的服务名称。服务名使用//server/service这样的形式,其中server 是提供服务的SMB/CIFS服务器的NetBIOS名字,而service 是可获得服务资源的名称。所以如果要联接服务器"smbserver"上的"printer"服务的话,应该使用这样的服务名称://smbserver/printer
注意服务名不使用服务器的IP(或DNS)主机名,而应该用NetBIOS名,而它可能与服务器的IP主机名相同当然也可能不相同。
服务器名是根据smbclient使用的-R 参数或者smb.conf(5)配置文件中的名称解析顺序参数来解析的。名称解析参数使管理员可以控制名称解析的顺序和方法。
- password
-
用password指定访问服务时所需的口令。如果使用了这个选项,就假定使用了-N(suppress password prompt)参数,在执行过程中不出现口令提示。
口令没有默认值。如果在命令行上没有提供口令(或者使用这个参数,或者在-U-fR参数中指定),并且也没有使用-N选项,那么即使需要的服务项不要求口令,程序也会提供要用户输入一个口令。(如果服务不需要口令,只要简单地打个回车就向服务器回应了一个空口令)
注意:有些服务器(包括OS/2和Windows for Workgroups)会强调使用大写口令,它们会拒绝小写或者大小写混合的口令。
在脚本中使用口令要小心。(可能有安全问题嘛!)
- -R <name resolve order>
- 通过指定这个选项让Samba套件中的程序决定使用怎样的名字解析服务及其次序来解决主机名和IP的对应。这个选项以一个以空格分隔的不同的名称解析方法为选项值。
可选值是:“lmhosts”,“host”,“wins”和“bcast”。这些选项使名字解析按以下的方法来进行:
lmhosts: 向Samba的lmhosts文件查询IP地址。If the line in lmhosts has no name type attached to the NetBIOS name (see the lmhosts(5) for details) then any name type matches for lookup.
host: 用标准的名字到IP地址解析方法:系统/etc/hosts文件,NIS或DNS查询。如何使用这个名字解析由系统决定。举例来说,在IRIX或者Solaris系统中,/etc/nsswitch.conf文件会处理这些问题。 Note that this method is only used if the NetBIOS name type being queried is the 0x20 (server) name type, otherwise it is ignored.
wins: 用配置文件中wins server选项列出的地址来查询名字。如果没有指定WINS服务器的话 会略过这种方法。
bcast: 向配置文件中interfaces参数列出的每个已知本地接口进行广播来进行查询。这是最不可靠的名字解析方法,因为它要求目标主机在本地子网内。
如果不使用这个参数的话,将按 smb.conf(5)配置文件中(name resolve order)参数指定的次序来进行名字解析。
默认的解析次序是lmhosts,host,wins,bcast,在不使用这个参数或者没有在smb.conf(5)配置文件中设定name resolve order 参数的情况下将使用这样的次序进行解析。
- -M NetBIOS name
- 使用这个选项可以让你以“WinPopup” 协议向其它计算机发送信息。一旦联接成功你就可以发送信息了,结束时可以按^D(Ctl-D).
如果接受方计算机也正在运行WinPopup的话,用户会收到发送的信息并且系统可能会鸣叫一声。如果对方并没有运行WinPopup的话信息就被丢弃,而不会发出出错信息。
如果发送的信息超过1600字节的话会自动被截断,因为这是此协议规定的极限。
这里有个很有用的小技巧,通过smbclient,用cat处理信息,例如:
cat mymessage.txt | smbclient -M FRED 将会把 mymessage.txt 中的信息发送给主机 FRED.
你也许会发现-U和-I选项很有用,因为它们允许你控制信息的源地址和目的地址部分。
参见smb.conf(5)配置文件中的message command参数获得如何在Samba中处理新进的WinPopup消息的详细描述。
注意:如果你总是要用你的WfWg PC的WinPopup来接收消息的话可以在你的Windows机器中把它拷到“启动”中。
- -p port
- 联接服务器所用的TCP端口号。标准(众所周知)的SMB/CIFS服务器TCP端口是139,当然也是默认值。
- -h|--help
- 打印出命令行帮助信息。
- -I IP-address
- 指定要联接的服务器IP地址。当然格式应该是“a.b.c.d”。
通常client会使用上面介绍过的name resolve order参数中描述的NetBIOS名字解析机制通过查询尝试查找一个已命名的SMB/CIFS服务器。使用这个参数会强制客户端程序采用指定的IP地址而忽略要联接的服务资源的NetBIOS名部分。
这个参数并没有默认值。如果不指定的话程序会用上面说的方法来自动检测。
- -E
- 当使用了这个参数后,程序会把信息写到标准错误流(stderr)而不是标准输入流中。
默认情况下,程序会把信息写入标准输入中 - 典型的例子是用户的tty。
- -L
- 此选项允许你查看服务器上可以获得的服务资源。使用smbclient -L host 命令会显示一份列表。如果你的NetBIOS名与TCP/IP域名不匹配或者要在其它网络上查找主机时,-I 选项会非常有用。
- -t terminal code
- 用这个选项告诉smbclient怎样解释从远程服务器上传来的文件名。通常,UNIX系统对亚洲多字节的语言的实现与SMB/CIFS服务器使用的字符集不同(例如用EUC代替 SJIS)。设置这个参数可以让smbclient 在UNIX文件名与SMB文件名之间进行正确的转换。不过,这个选项还没有经过严格的测试,所以可能会有些问题。
终端编码包含CWsjis, CWeuc, CWjis7, CWjis8, CWjunet, CWhex, CWcap. 当然这个列表并不完整,要获取完整列表请查看samba 源码。
- -b buffersize
- 在对服务器进行上/下传文件时可以用这个选项来改变传输缓冲大小。默认值是65520个字节。当从一个Win9x的服务器上进行文件传输时,把这个值设为稍小一点的值(例如1200字节)可以得到一些速度提升。
- -V
- Prints the program version number.
- -s <configuration file>
- 指定的这个文件包含服务器需要的配置详细信息。文件中的信息包含针对服务器的信息,比如使用什么printcap文件,还有所有服务器提供的服务的描述。参见smb.conf来获得更多信息。默认的配置文件名是在编译时指定的。
- -d|--debug=debuglevel
- debuglevel 调试等级是个从0到10的整数。参数未指定时默认值为0。
如果这个值越高,越多关于服务器的详细活动信息将被记录到文件中。在0调试级时,只记录紧急错误和严重警告。对于平日的运行服务,1调试级是个合理的等级,它只产生小量的关于执行操作的信息。
1以上的调试级将产生相当多的记录数据,并且只在解决问题时才有用。3以上的调试级只被设计为让开发者使用并会产生极大数量的记录数据,而且其中很多部分非常难以理解。
注意在此使用这个参数将越过在smb.conf (5)文件中的log level参数。
- -l|--logfile=logbasename
- 指定一个记录和调试的文件名。文件会被添加.client扩展名。记录文件无法被客户端删除。
- -N
- 如果指定了这个选项,就会省略通常的口令提示。当访问无需口令的服务资源时它很有用。
除非在命令行上输入了口令或者使用了上述这个选项,否则用户将被提示要求输入一个口令。
- -k
- Try to authenticate with kerberos. Only useful in an Active Directory environment.
- -A|--authfile=filename
- This option allows you to specify a file from which to read the username and password used in the connection. The format of the file is
username = <value>
password = <value>
domain = <value>
Make certain that the permissions on the file restrict access from unwanted users.
- -U|--user=username[%password]
- 这个参数指定程序联接时使用的用户名或者用户名和密码
如果没指定%password,将提示用户输入。程序会使用环境变量USER或LOGNAME,如果任何一个存在就会被转换为大写。如果既没有用户名也不存在环境变量的话,将使用GUEST作为用户名。
A third option is to use a credentials file which contains the plaintext of the username and password. This option is mainly provided for scripts where the admin does not wish to pass the credentials on the command line or via environment variables. If this method is used, make certain that the permissions on the file restrict access from unwanted users. See the -A for more details.
在脚本中包含口令或者使用PASSWD环境变量时要小心。而且在很多系统中,运行的命令行可以通过ps命令来查看,所以让rpcclient提示输入口令并直接键入会比较安全。
- -n <primary NetBIOS name>
- 使用这个选项让你越过机器的主机名而使用你要用的NetBIOS名。这样作和设置smb.conf文件中的netbios name选项作用相同。但是,命令行设置比配置文件中的设置优先级高。
- -i <scope>
- 这个参数指定一个产生NetBIOS名字时nmblookup用来通信所需要的NetBIOS范围。对于NetBIOS范围这个概念,可以参见rfc1001.txt和rfc1002.txt这两个文件中的详细定义。实际上这个NetBIOS范围的概念很少被用到,仅当你作为负责整个NetBIOS通信的管理员时才要设置。
- -W|--workgroup=domain
- 设置用户名的SMB域。这个选项越过了smb.conf配置文件中的默认域。如果指定的域与服务器NetBIOS名相同,会使得用户使用服务器本地安全管理local SAM来登录(与域SAM相反).
- -O socket options
- TCP套接字选项用来在客户端设定套接字方面的功能。参见smb.conf(5)手册页中的socket options参数获得合法的选项列表。
- -T tar options
- 我们可以用smbclient来对位于SMB/CIFS共享资源上的所有文件建立兼容tar(1) 格式的备份。可使用的tar选项是以下这些:
c - 在unix系统上建立一个tar文件。当然了,卷文件名,目标设备都必须给出,或者用"-"代表标准输出。如果用 标准输出,你必须把记录等级调到它的最低值-d0以避免影响产生的tar文件。这个标志的功能正好与x标志相反。
x - 用这个标志可以把本地的一个tar备份文件释放(恢复)到共享资源上。除非使用了-D选项,tar备份文件将从共享资源的顶层开始恢复。当然了,使用这个参数时后面必须紧跟一个想要恢复的文件名,设备,或者用"-"代表标准输入。与上面一样,这个标志的功能正好与c标志的功能相反。恢复后文件的建立时间(mtime)会被tar文件中保存的日期来替换, 而目录无法做到这一点的。
I - 用这个标志可以包含文件和目录。当在用-T参数时指定了一个文件名的话这就是默认的操作了。在释放或建立时tar文件都会包含这些内容(同时不会包含其他的内容)。参见下面的示例。文件名通配符有两种方式,参见下面r 。
X - 排除文件和目录。在释放或者建立备份时使这些文件或目录不被包含在内。请看下面的示例文件名通配符有两种方式,参见下面r 。
b - 块大小。在这个标志后必须用一个合法的块大小(大于0)。使建立备份时写入到块大小*TBLOCK(通常是512字节)这样 大小的块中。
g - 增量备份。只备份设置了归档位的文件。必须与c标志一起使用。
q - 静态工作。当操作进行时没有输出。它的意义与tar相应的静态工作模式一样。
r - 用正则表达式来描述包含或排除操作。当用HAVE_REGEX_H编译的话,用通常的正则表达式可以描述排除操作及要排除的文件,但是这种模式工作非常慢。如果没有用HAVE_REGEX_H的话,仅仅可以用通配符'*'和'?'。
N - 时间更新(newer)的文件.在这个标志后面必须是一个用来与共享中的文件创建时间做比较的文件名。只有共享中的文件比指定的文件要新的时候才会被备份。必须 与c标志一起使用。
a -设定归档位。使用这个标志在备份时对文件设置归档位。必须与g和fIc标志一起用.
Tar Long File Names
smbclient的tar选项现在可以在备份与恢复操作时支持长文件名了。但是,文件的完整路径描述必须小于1024 个字节。而且,当建立了一个归档包时,smbclient的tar选面会用文件相对路径写入归档包中,而不是绝对路径。
Tar Filenames
所有的文件名都要以DOS路径名(以'\\'作分隔符)或UNIX路径名(以'/'作分隔符)给出。
示例
把备份文件backup.tar恢复到位于mypc上的myshare中(无须口令)
smbclient //mypc/yshare "" -N -Tx backup.tar
恢复除了users/docs以外的所有内容
smbclient //mypc/myshare "" -N -TXx backup.tar users/docs
在 users/docs下建立一个备份文件
smbclient //mypc/myshare "" -N -Tc backup.tar users/docs
与上面操作相同,不过用的是DOS路径名
smbclient //mypc/myshare "" -N -tc backup.tar users\docs
对共享资源上所有内容(文件和目录)作一完整的备份
smbclient //mypc/myshare "" -N -Tc backup.tar *
- -D initial directory
- 在开始前用这个参数来改变初始目录。可能只在用tar的-T选项才用。
- -c command string
- 命令字符串串是一个以单引号(“'”)分隔的用来替换标准输入提示的一系列命令列表,这个参数意味着 -N。
当使用脚本或者要打印标准输入信息到服务器时这个选项就非常有用了,例如:-c 'print -'