在Linux存取Windows分享的資料夾 - smbclient

△注意:本文是配合 Ubuntu Server 12.04 LTS 安裝

在同一個機房中,要是有Windows與Linux的平台共存時,有的時候還是會需要讓Windows與Linux交換資料,但因為它們之間沒有直接交流資料的方法,所以我們就要用比較笨的方法來解決,例如架設ftp伺服器,從資料來源端做檔案上傳後,再到目的地的伺服器做下載,或者在Windows上使用WinSCP,透過ssh的慢速連結來復制資料,很複雜的做法也有,在Linux安裝NFS,在Windows安裝Client for UNIX來做通聯,是不是可以有比較簡單的方法呢?可以試看看samba哦!


▲圖一、Windows與Linux伺服器資料交換困難。

完整的samba可以讓Linux做很多的事,最基本的就是讓Linux分享出資料夾,供Windows的用戶端存取的服務,架設samba也是一件工程,我們沒有要玩這麼大,只是想要很簡單的完成交換資料動作,想來Windows分享資料夾是很簡單的事,所以反過來看只要讓Linux伺服器可以連到Windows的分享資料夾,那就可以解決問題了,這邊要用的是samba中的一個小程式smbclient,透過這個程式達到上述的目的,安裝smbclient的指令如下:

● sudo apt-get install smbclient


▲ 圖二、安裝smbclient過程示意圖

安裝完成後以smbclient --help可以查看程式提供的功能參數,我們先用-L來測試一下連線,看遠端電腦分享的資料夾清單出的來嗎?指定遠端的電腦IP(我的在192.168.1.100,Windows在找電腦分享資料時,使用’//’做前綴),-U來指定連線的使用者,這個連線使用者是在遠端Windows電腦有權限的使用者,輸入密碼也是遠端Windows電腦的密碼,不是這台Linux中本機使用者,千萬別搞錯了哦,完整指令如下:

● smbclient -L //192.168.1.100 -U ruilung


▲ 圖三、smbclient -L 看到遠端Windows電腦分享出來的目錄test

圖二中看到有些怪怪的符號,那些應該都是中文字,中文在Windows預設的編碼是big5,和Ubuntu預設用的UTF8不一樣,這要解決的話,可以在花時間把編碼統一,或者在目錄與檔名全部使用英數字,我是懶人,我選後者啦。

再來進行連入的動作,我要連入到192.168.1.100分享的test目錄,指令如下

● smbclient ‘//192.168.1.100/test’ -U ruilung #連入後會出現smb:\>的提示符號,輸入?可以看到可用的指令如圖五所示
● dir #就像是Windows的dir啦
● get bb.txt #像ftp一樣,把檔端由遠端拉回到本機中
● exit #離開,回到linux shell中


▲ 圖四、連線到test資料夾,並下載bb.txt


▲ 圖五、在smb:\>模式中查看可用的指令

可以下載資料了,但是還沒有收工,剛剛的方法還需要熟悉smb:\>的操作,再怎麼好用也沒有Linux shell好用呀,我們還可以將Windows 分享的資料掛載成本機目錄,這樣一來在用的時候也會比較順手,完整的指令與說明如下所示

● sudo mkdir /mnt/test #建立一個本機的資料夾,等下用來掛載
● mount -t cifs //192.168.1.100/test /mnt/test -o username=ruilung,password=aaaaaaaa # 以windows分享的資料夾,以cifs的方式掛載進本機,掛載的來源在//192.168.1.100/test,掛載的目的地在剛建的目錄/mnt/test,-o 指定在連線時使用的參數,我們需要輸入有權限可連線到遠端資料夾的使用者資訊
● ls /mnt/test # 掛載完成,看一下,果然看到和圖四一樣的檔案資料,這樣就成功了



▲圖六、掛載Windows分享的資料夾。

http://download.ithome.com.tw/article/index/id/131...

arrow
arrow

    Johnson峰 發表在 痞客邦 留言(0) 人氣()