- 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 -'