兩臺(tái)linux的文件傳輸
起因
本地拉取docker鏡像timeout,然后就準(zhǔn)備把阿里云上已經(jīng)在運(yùn)行的鏡像打包下載下來。
指令1:rsync
rsync 是一個(gè)非常強(qiáng)大的工具,用于文件同步和高效的數(shù)據(jù)傳輸。它可以用于備份、文件傳輸以及數(shù)據(jù)同步等多種場(chǎng)景。
rsync 的主要優(yōu)點(diǎn)在于其高效性和靈活性,特別是在處理大量文件和遠(yuǎn)程傳輸時(shí)表現(xiàn)優(yōu)異。
主要特點(diǎn)
- 增量傳輸:
rsync只傳輸兩個(gè)文件之間的差異部分,而不是整個(gè)文件,從而顯著減少了傳輸時(shí)間。 - 多平臺(tái)支持:
rsync可以在多種操作系統(tǒng)上運(yùn)行,包括 Linux、macOS 和 Windows。 - 安全傳輸:通過 SSH 或 SSL/TLS 進(jìn)行加密傳輸,保證數(shù)據(jù)的安全性。
- 靈活的選項(xiàng):支持多種選項(xiàng)來定制傳輸行為,如保留文件元數(shù)據(jù)、壓縮數(shù)據(jù)等。
- 遠(yuǎn)程文件同步:可以輕松地在本地計(jì)算機(jī)和遠(yuǎn)程服務(wù)器之間同步文件。
基本語法
rsync 的基本語法如下:
rsync [options] SOURCE DESTINATION
其中:
- options:一系列用于控制
rsync行為的選項(xiàng)。 - SOURCE:要同步或傳輸?shù)脑次募蚰夸洝?/li>
- DESTINATION:目標(biāo)文件或目錄的位置。
常用選項(xiàng)
基礎(chǔ)選項(xiàng)
- -a(archive):歸檔模式,保留文件屬性(如權(quán)限、時(shí)間戳、符號(hào)鏈接等)。
- -v(verbose):詳細(xì)模式,顯示更多輸出信息。
- -z(compress):?jiǎn)⒂脡嚎s,減少數(shù)據(jù)傳輸量。
- -P(progress):顯示進(jìn)度條,并在傳輸完成后打印統(tǒng)計(jì)數(shù)據(jù)。
- -r(recursive):遞歸復(fù)制目錄。
- -u(update):只傳輸那些源端比目標(biāo)端新或不存在的文件。
進(jìn)階選項(xiàng)
- -e(program):指定用于遠(yuǎn)程 shell 的程序,默認(rèn)為
ssh。 - -H(hard-links):保持硬鏈接的關(guān)聯(lián)。
- -L(links):將符號(hào)鏈接作為普通文件傳輸。
- -B(block-size):指定塊大小,用于提高傳輸效率。
- -S(sparse):保留稀疏文件的稀疏性。
- -I(ignore-errors):忽略錯(cuò)誤,繼續(xù)處理其他文件。
- -q(quiet):安靜模式,減少輸出信息。
示例
1. 本地文件同步
將本地目錄 source_dir 同步到本地目錄 dest_dir:
rsync -avz /path/to/source_dir /path/to/dest_dir
2. 從遠(yuǎn)程服務(wù)器拉取文件到本地
將遠(yuǎn)程服務(wù)器上的文件 remote_file 拉取到本地目錄 local_dir:
rsync -avz user@remote_server:/path/to/remote_file /path/to/local_dir
3. 將本地文件推送到遠(yuǎn)程服務(wù)器
將本地目錄 local_dir 推送到遠(yuǎn)程服務(wù)器的 remote_dir:
rsync -avz /path/to/local_dir user@remote_server:/path/to/remote_dir
應(yīng)用場(chǎng)景
數(shù)據(jù)備份
定期將重要數(shù)據(jù)備份到另一個(gè)存儲(chǔ)設(shè)備或遠(yuǎn)程服務(wù)器上:
rsync -avz --delete /path/to/data user@backup_server:/path/to/backup_dir
文件同步
實(shí)時(shí)同步工作目錄到遠(yuǎn)程服務(wù)器:
rsync -avz --delete /path/to/workdir user@remote_server:/path/to/remotedir
--delete:該選項(xiàng)表示在同步過程中刪除目標(biāo)端(destination)中不再存在于源端(source)的文件或目錄。這有助于保持目標(biāo)端與源端的一致性。
親測(cè)
將我筆記本上的ollama.tar的包傳輸?shù)睫k公室的Pi5上。之前從阿里云服務(wù)器上下載下來操作類似,網(wǎng)速也差不多,不過沒截圖。

指令2 scp
scp(Secure Copy)是一個(gè)用于通過 SSH 協(xié)議安全地傳輸文件的工具。它主要用于簡(jiǎn)單的文件傳輸任務(wù),特別適合在本地計(jì)算機(jī)和遠(yuǎn)程服務(wù)器之間傳輸單個(gè)文件或目錄。
基本語法
scp 的基本語法如下:
scp [options] source destination
常用選項(xiàng)
- -r:遞歸復(fù)制目錄。
- -p:保留文件的權(quán)限、時(shí)間戳等屬性。
- -v:詳細(xì)模式,顯示更多輸出信息。
- -C:?jiǎn)⒂脡嚎s(默認(rèn)不壓縮)。
- -P
:指定 SSH 端口(默認(rèn)為 22)。 - -i <identity_file>:指定私鑰文件,用于密鑰認(rèn)證。
常見用法
1. 從本地傳輸文件到遠(yuǎn)程服務(wù)器
將本地的 file.txt 文件傳輸?shù)竭h(yuǎn)程服務(wù)器的 /home/user/ 目錄:
scp -P 22 file.txt user@remote_server:/home/user/
這里的 -P 22 指定使用默認(rèn)的 SSH 端口 22。
2. 從遠(yuǎn)程服務(wù)器拉取文件到本地
將遠(yuǎn)程服務(wù)器上的 file.txt 文件拉取到本地的當(dāng)前目錄:
scp -P 22 user@remote_server:/home/user/file.txt .
3. 傳輸目錄
將本地的 directory 目錄傳輸?shù)竭h(yuǎn)程服務(wù)器的 /home/user/ 目錄:
scp -Pr directory user@remote_server:/home/user/
這里的 -Pr 表示遞歸復(fù)制目錄。
4. 使用私鑰傳輸
如果ssh設(shè)置了使用密鑰進(jìn)行連接,那需要使用參數(shù)-i進(jìn)行傳輸:
scp -i /home/user/.ssh/<私鑰> file.txt user@remote_server:/home/user/
示例
1. 從本地傳輸文件到遠(yuǎn)程服務(wù)器
假設(shè)你要將本地的 ~/Documents/file.txt 文件傳輸?shù)竭h(yuǎn)程服務(wù)器的 ~/backups 目錄:
scp -P 22 ~/Documents/file.txt user@remote_server:~/backups
2. 從遠(yuǎn)程服務(wù)器拉取文件到本地
假設(shè)你要將遠(yuǎn)程服務(wù)器上的 ~/data/file.txt 文件拉取到本地的 ~/Downloads 目錄:
scp -P 22 user@remote_server:~/data/file.txt ~/Downloads
3. 傳輸目錄
假設(shè)你要將本地的 ~/Projects/project 目錄傳輸?shù)竭h(yuǎn)程服務(wù)器的 ~/projects 目錄:
scp -Pr ~/Projects/project user@remote_server:~/projects
與 rsync 的區(qū)別
雖然 scp 和 rsync 都可以用來傳輸文件,但它們有一些不同之處:
- 功能復(fù)雜度:
rsync提供了更豐富的功能,如增量傳輸、文件同步等。 - 性能:對(duì)于大型文件或目錄,
rsync通常更高效,因?yàn)樗粋鬏斘募牟煌糠帧?/li> - 易用性:
scp更適合簡(jiǎn)單的文件傳輸任務(wù),而rsync更適合復(fù)雜的同步和備份場(chǎng)景。

浙公網(wǎng)安備 33010602011771號(hào)