hello,小伙伴們,大家好! 我是木榮。 今天給大家分享一下Linux下不同主機(jī)之間如何通過網(wǎng)絡(luò)進(jìn)行文件共享,達(dá)到文件在不同主機(jī)之間進(jìn)行拷貝的目的。 在平時的工作中,我們需要經(jīng)常在主機(jī)與開發(fā)板、同一網(wǎng)絡(luò)下的不同主機(jī)、主機(jī)與公網(wǎng)中的主機(jī)、主機(jī)與云服務(wù)器等等之間拷貝文件。 那么在這樣的環(huán)境下如何實現(xiàn)文件拷貝呢,我們來說說下面的幾種方式,看看你是否常用
平常工作中你的電腦通常不是網(wǎng)絡(luò)上唯一的計算機(jī),如果你在工作環(huán)境中,情況尤其如此。 當(dāng)我們想要將數(shù)據(jù)從一臺機(jī)器傳輸?shù)搅硪慌_機(jī)器時,有時連接一個U盤并手動復(fù)制它們可能更容易。 但在大多數(shù)情況下,如果你使用同一網(wǎng)絡(luò)上的機(jī)器,則傳輸數(shù)據(jù)的方式是通過網(wǎng)絡(luò)文件共享來的更方便些。
(資料圖片)
下面,我們將介紹幾種不同的方法來在網(wǎng)絡(luò)上的不同機(jī)器之間復(fù)制數(shù)據(jù)。 我們將討論一些簡單的文件副本,然后我們將討論如何將整個目錄掛載到你的機(jī)器上,作為一個單獨的驅(qū)動器。
一個簡單的文件共享工具是scp命令。 scp命令代表安全復(fù)制,它的工作方式與cp命令完全相同,但是允許你從一臺主機(jī)復(fù)制到同一網(wǎng)絡(luò)上的另一臺主機(jī)。 它通過ssh工作,因此你的所有操作都使用與ssh相同的身份驗證和安全性。
1.將文件從本地主機(jī)復(fù)制到遠(yuǎn)程主機(jī)
$scp myfile.txt username@remotehost.com:/remote/directory
2.將文件從遠(yuǎn)程主機(jī)復(fù)制到本地主機(jī)
$scp username@remotehost.com:/remote/directory/myfile.txt /local/directory
3.將目錄從本地主機(jī)復(fù)制到遠(yuǎn)程主機(jī)
$scp -r mydir username@remotehost.com:/remote/directory
另一個用于從不同主機(jī)復(fù)制數(shù)據(jù)的工具是rsync(遠(yuǎn)程同步的縮寫)。 rsync非常類似于scp,但它確實有一個主要的區(qū)別。 rsync使用一種特殊的算法,它可以提前檢查是否已經(jīng)有數(shù)據(jù)要復(fù)制,并且只復(fù)制差異。 例如,假設(shè)您正在復(fù)制一個文件,而你的網(wǎng)絡(luò)中斷了,因此你的復(fù)制中途停止。 rsync將只復(fù)制未復(fù)制的部分,而不是從頭重新復(fù)制所有內(nèi)容。
它還驗證使用校驗和復(fù)制的文件的完整性。 這些小優(yōu)化允許更大的文件傳輸靈活性,使rsync成為遠(yuǎn)程和本地目錄同步、數(shù)據(jù)備份、大型數(shù)據(jù)傳輸?shù)鹊睦硐脒x擇。
一些常用的rsync選項:
V -詳細(xì)輸出r -遞歸到目錄h -人性化的可讀輸出z -壓縮更容易傳輸,非常適合慢速連接1.在同一主機(jī)上復(fù)制/同步文件
$rsync -zvr/my/local/directory/one /my/local/directory/two
2.從遠(yuǎn)程主機(jī)拷貝/同步文件到本地主機(jī)
$rsync /local/directory username@remotehost.com:/remote/directory
3.從本地主機(jī)復(fù)制/同步文件到遠(yuǎn)程主機(jī)
$rsync username@remotehost.com:/remote/directory /local/directory
Python有一個超級有用的工具,通過HTTP服務(wù)。 如果你只是想創(chuàng)建一個快速的網(wǎng)絡(luò)共享,以便網(wǎng)絡(luò)上的其他機(jī)器可以訪問,那么這個功能非常棒。 要做到這一點,只需進(jìn)入你想要共享的目錄并運(yùn)行:
$python -m SimpleHTTPServer
這將設(shè)置一個基本的web服務(wù)器,您可以通過localhost地址訪問它。 因此,獲取運(yùn)行此程序的機(jī)器的IP地址,然后在另一臺機(jī)器上使用http://IP_ADDRESS:8000
在瀏覽器中訪問它。 在你自己的機(jī)器上,你可以通過在web瀏覽器中鍵入:http://localhost:8000
來查看可用共享的文件。
Linux最標(biāo)準(zhǔn)的網(wǎng)絡(luò)文件共享是NFS(網(wǎng)絡(luò)文件系統(tǒng)),NFS允許服務(wù)器通過網(wǎng)絡(luò)與一個或多個客戶端共享目錄和文件。 NFS
也是木榮平常工作中最常用的一種文件共享的方式。
1.設(shè)置NFS客戶端
$sudo service nfsclient start$sudo mount server:/directory /mount_directory
2.自動掛載
假設(shè)你經(jīng)常使用NFS服務(wù)器,并且希望永久掛載它,通常你會編輯/etc/fstab文件,但是你可能并不總是獲得到服務(wù)器的連接,這可能會導(dǎo)致啟動時出現(xiàn)問題。 相反,你要做的是設(shè)置自動掛載,以便在需要時可以連接到NFS服務(wù)器。 這是通過自動掛載工具或最新版本的Linux完成的。 當(dāng)在指定目錄中訪問文件時自動掛載將查找遠(yuǎn)程服務(wù)器并自動掛載它。
在計算機(jī)的早期,Windows計算機(jī)必須與Linux計算機(jī)共享文件,因此服務(wù)器消息塊(SMB)協(xié)議誕生了。 SMB被用于Windows操作系統(tǒng)之間的文件共享(Mac也有與SMB的文件共享),后來被清理和優(yōu)化為通用互聯(lián)網(wǎng)文件系統(tǒng)協(xié)議(CIFS)。
Samba是我們在Linux上使用CIFS的Linux實用程序。 除了文件共享,還可以共享打印機(jī)等資源。
讓我們通過基本步驟來創(chuàng)建一個Windows機(jī)器可以訪問的網(wǎng)絡(luò)共享:
$sudo apt install samba
samba的配置文件位于/etc/samba/smb.conf,這個文件應(yīng)該告訴系統(tǒng)應(yīng)該共享哪些目錄、它們的訪問權(quán)限和更多選項。 默認(rèn)的smb.conf已經(jīng)帶有大量注釋代碼,您可以使用這些代碼作為示例來編寫自己的配置。
$sudo vi /etc/samba/smb.conf
$sudo smbpasswd -a [username]
$mkdir /my/directory/to/share
$sudo service smbd restart
在Windows中,只需在運(yùn)行提示符中輸入網(wǎng)絡(luò)連接:\\HOST\\sharename。
通過Linux訪問Samba/Windows共享
$smbclient //HOST/directory -U user
samba安裝包包含一個名為smbclient的命令行工具,你可以使用它訪問任何Windows或Samba服務(wù)器。 一旦你連接到共享,你就可以傳輸文件了。
你可以在系統(tǒng)上掛載網(wǎng)絡(luò)共享,而不是逐個傳輸文件。
$sudo mount -t cifs servername:directory mountpount -o user=username,pass=password
網(wǎng)絡(luò)中文件共享是我們工作中經(jīng)常使用的,選擇合適的一種方式很大程度上會提高我們的工作效率,達(dá)到事半功倍的效果。
標(biāo)簽: