Linux下文件共享的幾種方式

2023-04-26 18:13:55 來源:Linux兵工廠

hello,小伙伴們,大家好! 我是木榮。 今天給大家分享一下Linux下不同主機之間如何通過網絡進行文件共享,達到文件在不同主機之間進行拷貝的目的。 在平時的工作中,我們需要經常在主機與開發板、同一網絡下的不同主機、主機與公網中的主機、主機與云服務器等等之間拷貝文件。 那么在這樣的環境下如何實現文件拷貝呢,我們來說說下面的幾種方式,看看你是否常用

1. 文件共享概述

平常工作中你的電腦通常不是網絡上唯一的計算機,如果你在工作環境中,情況尤其如此。 當我們想要將數據從一臺機器傳輸到另一臺機器時,有時連接一個U盤并手動復制它們可能更容易。 但在大多數情況下,如果你使用同一網絡上的機器,則傳輸數據的方式是通過網絡文件共享來的更方便些。


(資料圖片)

下面,我們將介紹幾種不同的方法來在網絡上的不同機器之間復制數據。 我們將討論一些簡單的文件副本,然后我們將討論如何將整個目錄掛載到你的機器上,作為一個單獨的驅動器。

一個簡單的文件共享工具是scp命令。 scp命令代表安全復制,它的工作方式與cp命令完全相同,但是允許你從一臺主機復制到同一網絡上的另一臺主機。 它通過ssh工作,因此你的所有操作都使用與ssh相同的身份驗證和安全性。

1.將文件從本地主機復制到遠程主機

$scp myfile.txt username@remotehost.com:/remote/directory

2.將文件從遠程主機復制到本地主機

$scp username@remotehost.com:/remote/directory/myfile.txt /local/directory

3.將目錄從本地主機復制到遠程主機

$scp -r mydir username@remotehost.com:/remote/directory

2. 同步

另一個用于從不同主機復制數據的工具是rsync(遠程同步的縮寫)。 rsync非常類似于scp,但它確實有一個主要的區別。 rsync使用一種特殊的算法,它可以提前檢查是否已經有數據要復制,并且只復制差異。 例如,假設您正在復制一個文件,而你的網絡中斷了,因此你的復制中途停止。 rsync將只復制未復制的部分,而不是從頭重新復制所有內容。

它還驗證使用校驗和復制的文件的完整性。 這些小優化允許更大的文件傳輸靈活性,使rsync成為遠程和本地目錄同步、數據備份、大型數據傳輸等的理想選擇。

一些常用的rsync選項:

V -詳細輸出r -遞歸到目錄h -人性化的可讀輸出z -壓縮更容易傳輸,非常適合慢速連接

1.在同一主機上復制/同步文件

$rsync -zvr/my/local/directory/one /my/local/directory/two

2.從遠程主機拷貝/同步文件到本地主機

$rsync /local/directory username@remotehost.com:/remote/directory

3.從本地主機復制/同步文件到遠程主機

$rsync username@remotehost.com:/remote/directory /local/directory

3. 簡易HTTP服務器

Python有一個超級有用的工具,通過HTTP服務。 如果你只是想創建一個快速的網絡共享,以便網絡上的其他機器可以訪問,那么這個功能非常棒。 要做到這一點,只需進入你想要共享的目錄并運行:

$python -m SimpleHTTPServer

這將設置一個基本的web服務器,您可以通過localhost地址訪問它。 因此,獲取運行此程序的機器的IP地址,然后在另一臺機器上使用http://IP_ADDRESS:8000在瀏覽器中訪問它。 在你自己的機器上,你可以通過在web瀏覽器中鍵入:http://localhost:8000來查看可用共享的文件。

4. NFS

Linux最標準的網絡文件共享是NFS(網絡文件系統),NFS允許服務器通過網絡與一個或多個客戶端共享目錄和文件。 NFS也是木榮平常工作中最常用的一種文件共享的方式。

1.設置NFS客戶端

$sudo service nfsclient start$sudo mount server:/directory /mount_directory

2.自動掛載

假設你經常使用NFS服務器,并且希望永久掛載它,通常你會編輯/etc/fstab文件,但是你可能并不總是獲得到服務器的連接,這可能會導致啟動時出現問題。 相反,你要做的是設置自動掛載,以便在需要時可以連接到NFS服務器。 這是通過自動掛載工具或最新版本的Linux完成的。 當在指定目錄中訪問文件時自動掛載將查找遠程服務器并自動掛載它。

5. samba服務器

在計算機的早期,Windows計算機必須與Linux計算機共享文件,因此服務器消息塊(SMB)協議誕生了。 SMB被用于Windows操作系統之間的文件共享(Mac也有與SMB的文件共享),后來被清理和優化為通用互聯網文件系統協議(CIFS)。

Samba是我們在Linux上使用CIFS的Linux實用程序。 除了文件共享,還可以共享打印機等資源。

使用Samba創建網絡共享

讓我們通過基本步驟來創建一個Windows機器可以訪問的網絡共享:

安裝Samba服務器

$sudo apt install samba

配置smb.conf

samba的配置文件位于/etc/samba/smb.conf,這個文件應該告訴系統應該共享哪些目錄、它們的訪問權限和更多選項。 默認的smb.conf已經帶有大量注釋代碼,您可以使用這些代碼作為示例來編寫自己的配置。

$sudo vi /etc/samba/smb.conf

為samba設置密碼

$sudo smbpasswd -a [username]

創建共享目錄

$mkdir /my/directory/to/share

重新啟動samba服務

$sudo service smbd restart

通過Windows訪問samba共享

在Windows中,只需在運行提示符中輸入網絡連接:\\HOST\\sharename。

通過Linux訪問Samba/Windows共享

$smbclient //HOST/directory -U user

samba安裝包包含一個名為smbclient的命令行工具,你可以使用它訪問任何Windows或Samba服務器。 一旦你連接到共享,你就可以傳輸文件了。

將samba共享附加到你的系統

你可以在系統上掛載網絡共享,而不是逐個傳輸文件。

$sudo mount -t cifs servername:directory mountpount -o user=username,pass=password

小結

網絡中文件共享是我們工作中經常使用的,選擇合適的一種方式很大程度上會提高我們的工作效率,達到事半功倍的效果。

標簽:

上一篇:C語言中的基本數據類型
下一篇:最后一頁