Linux中的文件傳輸(附加詳細實驗案例)

?一、實驗環境的設置

①該實驗需要兩臺主機,虛擬機名稱為 L2 和 L3 ,在終端分別更改主機名為 node1 和 node2,在實驗過程能夠更好分辨。

然后再重新打開終端,主機名便都更改了相應的名稱。

②用 ip a 的命令分別查看兩個主機的 IP地址。(node1?的IP地址為 192.168.10.128/24,node2 的IP地址為 192.168.10.131/24 )。

IP 地址的來源:

找到編輯,打開虛擬網絡編輯器。

選擇NAT模式,可看到VMnet 8 打開了DHCP服務,L2 和 L3 虛擬機可自動從 192.168.10.0 這個網段中獲取IP地址,DHCP設置中可看到 IP地址的范圍是 192.168.10.128 -- 192.168.10.254。

用 ping 命令檢測兩個虛擬機之間的連通性?

保險起見,在 node1 和 node2 中都編輯一個 sshd 文件,輸入 :set nu 命令可顯示行數,將第 40 行的 # 刪掉,將是否允許超級用戶登錄后面的單詞改為 yes ,然后 :wq 保存退出,再輸入 systemctl restart sshd 命令重啟 sshd 服務,配置便生效了。(d :開啟了守護進程)

二、文件傳輸方法

1.scp

scp (Secure Copy)是一個在 Linux、Unix 以及類 Unix 系統中廣泛使用的命令,用于在本地主機和遠程主機之間安全地復制文件和目錄。它基于 SSH(Secure Shell)協議,因此在傳輸過程中會對數據進行加密,確保數據的安全性。?

1)把本機文件或目錄復制到遠程主機

命令格式:scp [-r] <本地文件或目錄> <遠程主機用戶@遠程主機IP:遠程主機目錄的絕對路徑>?

node1 為當前主機,node2 為遠程主機??

先在 node1 主機上建立 lxt 目錄和 lee 文件,并在 lxt 目錄里建立三個 test 文件。?

然后在 node1 復制 lee 文件到 node2 ,同意建立連接,隨后輸入 node2 主機的密碼,即可復制成功。

?由圖可知,L3 的桌面出現了 lee 文件,即復制成功。

將 node1 主機的 lxt 目錄及里面的文件復制到 node2 主機桌面(第一次傳輸輸入過密碼,后面傳輸可直接 Enter 健跳過)。?

命令說明:

scp lee root@192.168.10.131:/root/Desktop復制文件
scp -r lxt root@192.168.10.131:/root/Desktop
-r:遞歸,復制目錄,目錄傳輸時,里面的文件也一塊傳輸
scp -q?lxt root@192.168.10.131:/root/Desktop-q:傳輸文件時不顯示進度

2)把遠程文件或目錄復制到當前主機的當前目錄?

命令格式:?scp [-r] <遠程主機用戶@遠程主機ip:遠程主機目錄的絕對路徑> <本地文件或目錄>

先將 node1 主機的桌面清空,隨后將 node2 主機的文件和目錄分別復制到當前主機?。

命令說明:?

scp root@192.168.10.131:/root/Desktop/lee .
將遠程文件復制到當前主機的當前目錄
scp -r root@192.168.10.131:/root/Desktop/lxt .將遠程目錄復制到當前主機的當前目錄
命令最后的 . 表示當前目錄,相當于 /root/Deaktop

2.rsync

rsync 是一個強大且高效的文件同步和傳輸工具,既可以通過 SSH 協議進行安全傳輸,也能使用rsync 守護進程( rsync daemon )進行傳輸,不僅能實現本地和遠程主機間的文件傳輸,還具備強大的增量傳輸功能。rsync 的效率比 scp 的效率更高些,但是 rsync 的數據完整性和可靠性相對于 scp 而言要差一些(下面以復制目錄為例) 。

?實時監控 node2 中的 mnt 目錄,并清除里面所有的內容,便于觀察里面的變化。

在 mnt 目錄里建立 leefile1 - leefile5 五個文件,并將權限改為 777(即 rwnrwnrwn),以及其所有文件的擁有者和擁有組改為 lee ,再建立一個鏈接

查看 mnt 目錄中所有文件及鏈接的信息

1)把本地文件或目錄同步到遠程主機

命令格式:

rsync [-rlptogD]?<本地文件或目錄> <遠程主機用戶@遠程主機IP:遠程主機目錄的絕對路徑>?

同步目錄和目錄中的內容:?

將 node1 中的mnt 目錄的內容同步到 node2 中。

mnt 目錄及其所有文件都能同步到 node2(忽略了鏈接)。

只同步目錄里面的內容:

首先還是先清空 node2 中的mnt 目錄里面的內容。?

?將 node1 中的 mnt 目錄的內容同步到 node2 中。

這時 node2 中只出現了目錄里面的內容,沒有目錄本身(忽略了鏈接)。

同步普通文件:

-l同步 node1 的鏈接到 node2。

-p同步 node1 的權限到 node2。?

-o同步 node1 的擁有者到 node2。?

-g同步 node1 的擁有組到 node2。?

-t同步 node1 的時間戳到 node2。?

因為 node2 中沒有 lee 這個身份,所以擁有者和擁有組顯示數字(用戶的真實身份是數字)??

同步特殊文件:

特殊文件例子:/dev/pts/ 字符設備

-D同步node1 的設備文件到 node2。

rsync命令總結說明

rsync -r /mnt?root@192.168.10.131: /mnt
只同步本機的目錄和目錄中的內容到遠程主機
rsync -r /mnt/ root@192.168.10.131: /mnt只同步本機的目錄中的內容到遠程主機
rsync -lr /mnt/ root@192.168.10.131: /mnt同步本機的鏈接到遠程主機
rsync -pr /mnt/ root@192.168.10.131: /mnt同步本機的權限到遠程主機
rsync -or /mnt/ root@192.168.10.131: /mnt同步本機的擁有者到遠程主機
rsync -gr /mnt/ root@192.168.10.131: /mnt同步本機的擁有組到遠程主機
rsync -tr /mnt/ root@192.168.10.131: /mnt同步本機的時間戳到遠程主機
rsync -Dr /mnt/ root@192.168.10.131: /mnt同步本機的設備文件到遠程主機

2)把遠程文件或目錄同步到當前主機的當前目錄

命令格式:

rsync [-rlptogD] <遠程主機用戶@遠程主機IP:遠程主機目錄的絕對路徑> <本地文件或目錄>

過程與將當前主機的文件或目錄同步到遠程主機的過程相同,只是命令中的文件或目錄放在了最后,下面僅展示命令示例總結說明:

rsync -r?root@192.168.10.131: /mnt /mnt
只同步遠程主機的目錄和目錄中的內容到本機
rsync -r /mnt/ root@192.168.10.131: /mnt /mnt/只同步遠程主機的目錄中的內容到本機
rsync -lr root@192.168.10.131: /mnt /mnt/同步遠程主機的鏈接到本機
rsync -pr root@192.168.10.131: /mnt /mnt/同步遠程主機的權限到本機
rsync -or root@192.168.10.131: /mnt /mnt/同步遠程主機的擁有者到本機
rsync -gr root@192.168.10.131: /mnt /mnt/同步遠程主機的擁有組到本機
rsync -tr root@192.168.10.131: /mnt /mnt/同步遠程主機的時間戳到本機
rsync -Dr root@192.168.10.131: /mnt /mnt/同步遠程主機的設備文件到本機

?三、加速文件傳輸的方法——歸檔與壓縮

1.歸檔?

歸檔是指將多個文件或目錄收集整合到一個單獨的文件中,這個單獨的文件就被稱為歸檔文件。歸檔的 主要目的是方便對大量文件進行管理、備份和傳輸。?

打包 成一個 .tar 文件發送,增加效率

將node1 中的?etc 目錄及其文件按照正常速度傳輸到 node2 的話,目錄中的內容會一個個傳輸,速度較慢。

首先在 node1 將需要發送的內容打包成一個 .tar 文件,但不進行壓縮。通過查看文件權限,可知已將 etc 目錄打包成 etc.tar 文件。

再次將 node1 需要發送的內容傳輸到 node2,此時顯示出來的發送內容只有一條,速度也提升了。

查看 etc 目錄和 etc.tar 文件占用內存,是相同的, etc.tar 文件內存少了一點的原因是:etc 目錄里有些內容是鏈接,其中的文件會有重復,所以目錄占用內存較多。

c創建????????????????f指定文件或目錄名稱

創建 abc.tar 歸檔文件,并將 etc 目錄和 mnt 目錄打包在一起。

x解檔 abc.tar 歸檔文件。

--get指定解檔 abc.tar 歸檔文件中的?mnt 目錄。

r將建立的 file 文件添加到 abc.tar 歸檔文件中,然后查看 abc.tar 歸檔文件的最后三行,顯示有 file 文件,說明添加成功。

--delete刪除 abc.tar 歸檔文件中的 file 文件,同樣查看 abc.tar 文件的最后三行,沒有顯示?file 文件,說明刪除成功。

-C先查看 pub 目錄里面的內容,只有 leefile 文件,然后將 abc.tar 歸檔文件解檔到 pub 目錄中,隨后再次查看 pub 目錄, abc.tar 歸檔文件中的 etc 目錄和 mnt 目錄都解檔解檔到 pub 目錄中。

歸檔命令總結說明

tar cf etc.tar /etc/
創建 etc.tar 歸檔文件,將 etc 目錄打包
tar cf abc.tar /etc/ /mnt/創建 abc.tar 歸檔文件,將 etc 目錄和 mnt 目錄一起打包
tar xf abc.tar將 abc.tar 歸檔文件解檔
tar rf abc.tar file將 file 文件添加到 abc.tar 歸檔文件
tar tf abc.tar | tail -n 3查看 abc.tar 歸檔文件的最后三行(內容多,可只查看規定的幾行內容)
tar f abc.tar --get /mnt/指定解檔 abc.tar 歸檔文件中的?mnt 目錄
tar f abc.tar --delete file刪除 abc.tar 歸檔文件中的 file 文件
tar xf abc.tar -C /pub/將 abc.tar 歸檔文件解檔到指定的 pub 目錄

2.壓縮

壓縮文件可以減少存儲空間的占用,提升數據傳輸的效率。壓縮的文件越小,越利于文件傳輸,壓縮速度也越慢。壓縮速度快慢除了跟壓縮比例相關,更多的是對 CPU 的要求比較高,CPU 快,壓縮速度也快。

Linux 默認支持壓縮格式zip 格式gzip 格式bzip2 格式xz 格式

壓縮

格式

說明

它可以將多個文件和目錄壓縮到一個文件中,并且支持跨平臺使用,方便在不同操作系統之間傳輸文件。zip 格式還支持加密功能,可以對壓縮文件中的內容進行加密保護。
以 .gz 為擴展名,是 Linux 系統中廣泛使用的壓縮格式。它使用 gzip 算法進行壓縮,具有較 快的壓縮和解壓縮速度,適用于大多數日常文件的壓縮。例如,許多軟件包在發布時會采用 .gz 壓縮格式。
文件擴展名為 .bz2 。這種格式采用 bzip2 算法,壓縮率相對較高,但壓縮和解壓縮速度比 gz格式慢一些。在需要更高壓縮比的情況下,如對大型數據文件或備份文件進行壓縮時,常采 用 .bz2 格式。
以.xz為擴展名,使用 xz 算法進行壓縮。它具有極高的壓縮率,能最大程度地減小文件體積,但壓縮和解壓縮過程相對較慢,通常用于對空間要求極為苛刻的場景,如長期存儲的大量數據歸檔。

先清空桌面的文件,重新建立 etc.tar 歸檔文件,打包 etc 目錄。然后查看 etc.tar 歸檔文件和 etc 目錄占用內存大小。

1)zip格式壓縮

zip -r etc.tar.zip etc.tar? ? ? zip 格式壓縮文件

unzip etc.tar.zip?? ? ? ? ? ? ? ??zip 格式解壓縮

將 etc.tar 歸檔文件壓縮成 zip 格式,隨后查看壓縮后的占用內存,只有7.7M。?

解壓 etc.tar.zip,便可得回 etc.tar 歸檔文件。?

2)gzip 格式

gzip etc.tar??? ? ? ? ? ? ??gzip 格式壓縮文件

gunzip etc.tar.gz? ? ? ?gzip 格式解壓縮

將 etc.tar 歸檔文件壓縮成 gzip 格式,隨后查看壓縮后的占用內存,只有6.3M。

解壓 etc.tar.gz,便可得回 etc.tar 歸檔文件。

?3)bzip2 格式

bzip2 etc.tar????????????????bzip2 格式壓縮

bunzip etc.tar.bz2? ? ? ?bzip2 格式解壓縮

將 etc.tar 歸檔文件壓縮成 bzip2 格式,隨后查看壓縮后的占用內存,只有5.4M。?

解壓 etc.tar.bz2,便可得回 etc.tar 歸檔文件。

4)xz 格式?

xz etc.tar?? ? ? ? ? ? ? ???xz 格式壓縮

unxz etc.tar.xz? ? ? ? ?xz 格式解壓縮

將 etc.tar 歸檔文件壓縮成 xz 格式,隨后查看壓縮后的占用內存,只有4.5M。

解壓 etc.tar.xz,便可得回 etc.tar 歸檔文件。?

3.歸檔壓縮一步完成

壓縮只針對于文本,涉及圖片或視頻不支持,因為它們之間的解碼不同。

將 etc?目錄一步完成歸檔壓縮(只有 gzip、bzip2、xz 格式才能歸檔壓縮一步完成,tar 命令不支持 zip 格式)。

分別解壓etc.tar.gz、etc.tar.bz2、etc.tar.xz,便可得回 etc 目錄。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/901270.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/901270.shtml
英文地址,請注明出處:http://en.pswp.cn/news/901270.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【從0到1學Elasticsearch】Elasticsearch從入門到精通(上)

黑馬商城作為一個電商項目&#xff0c;商品的搜索肯定是訪問頻率最高的頁面之一。目前搜索功能是基于數據庫的模糊搜索來實現的&#xff0c;存在很多問題。 首先&#xff0c;查詢效率較低。 由于數據庫模糊查詢不走索引&#xff0c;在數據量較大的時候&#xff0c;查詢性能很差…

圖論基礎理論

在我看來&#xff0c;想要掌握圖的基礎應用&#xff0c;僅需要三步走。 什么是圖&#xff08;基本概念&#xff09;、圖的構造&#xff08;打地基&#xff09;、圖的遍歷方式&#xff08;應用的基礎&#xff09; 只要能OK的掌握這三步、就算圖論入門了&#xff01;&#xff0…

詳細解讀react框架中的hooks

React Hooks 是 React 16.8 引入的一項革命性特性&#xff0c;它允許你在函數組件中使用狀態(state)和其他 React 特性&#xff0c;而無需編寫 class 組件。下面將詳細解讀 React Hooks 的核心概念、常用 Hooks 及其工作原理。 一、Hooks 的核心概念 1. 什么是 Hooks Hooks …

主機IP動態變化時如何通過固定host.docker.internal訪問本機服務

場景需求——主機IP動態變化時&#xff0c;通過固定的 http://host.docker.internal:11555 訪問本機服務&#xff0c;核心問題在于 host.docker.internal 的解析邏輯與動態IP的適配。以下是分步解決方案&#xff1a; 一、核心原理&#xff1a;host.docker.internal 的本質與局…

插值算法 - 最近鄰插值實現

目錄 1. 導入必要的庫 2. nearest_neighbor_interpolation 3. 測試代碼 數學原理 完整代碼 本文實現了基于最近鄰插值算法的圖像縮放功能。 它使用 Python 編寫,主要依賴于NumPy和PIL(Python Imaging Library)庫。 NumPy用于高效的數值計算,而PIL僅用于圖像的加載和…

windows中搭建Ubuntu子系統

windows中搭建虛擬環境 1.配置2.windows中搭建Ubuntu子系統2.1windows配置2.1.1 確認啟用私有化2.1.2 將wsl2設置為默認版本2.1.3 確認開啟相關配置2.1.4重啟windows以加載更改配置 2.2 搭建Ubuntu子系統2.2.1 下載Ubuntu2.2.2 遷移位置 3.Ubuntu子系統搭建docker環境3.1安裝do…

MySQL事務機制

目錄 原子性 持久性 隔離性 隔離級別(并發事務之間的關系) 讀未提交 讀已提交 可重復讀 串行化(最嚴格的隔離級別) 一致性 問題 不可重復讀性(已經提交的數據) 什么是臟讀問題(未提交的數據)? 幻讀 保存點 自動提交機制--autocommit 會話隔離級別與全局隔離級…

Cadence學習筆記之---直插元件的封裝制作

目錄 01 | 引 言 02 | 環境描述 03 | 操作步驟 04 | 結 語 01 | 引 言 在之前發布的Cadence小記中&#xff0c;已經講述了怎樣制作熱風焊盤&#xff0c;貼片(SMD)焊盤、通孔、過孔&#xff0c;以及貼片元件的封裝。 本篇關于Cadence的小記主要講如何制作直插元件的封裝。 …

【第四十周】文獻閱讀:用于檢索-增強大語言模型的查詢與重寫

目錄 摘要Abstract用于檢索-增強大語言模型的查詢與重寫研究背景方法論基于凍結LLM的重寫方案基于可訓練重寫器的方案重寫器預熱訓練&#xff08;Rewriter Warm-up&#xff09;強化學習&#xff08;Reinforcement Learning&#xff09; 創新性實驗結果局限性總結 摘要 這篇論文…

java學習總結(if switch for)

一.基本結構 1.單分支if int num 10; if (num > 5) {System.out.println("num 大于 5"); } 2.雙分支if-else int score 60; if (score > 60) {System.out.println("及格"); } else {System.out.println("不及格"); } 3.多分支 int…

yum的基本操作和vim指令

在我們的手機端或者Windows上下載軟件&#xff0c;可以在相應的應用商店或者官網進行下載&#xff0c;這樣對于用戶來說十分的方便和便捷。而在Linux上&#xff0c;也有類似的安裝方式&#xff0c;我們來一一了解一下。 Linux安裝軟件的3種方法 源代碼安裝 在Linux下安裝軟件…

C++ CUDA開發入門

CUDA開發筆記 文章目錄 CUDA開發筆記[toc]1 概述2 環境3 命令行編譯4 CMAKE引入CUDA5 vscode開發CUDA6 Qt中使用CUDA-CMake7 QMake配置CUDA8 核函數9 核函數調用9.1 核函數調用語法9.2 執行配置參數詳解9.3 關鍵調用步驟9.4 重要注意事項9.5 調用示例分析9.6 最佳實踐建議 10 線…

llm開發框架新秀

原文鏈接:https://i68.ltd/notes/posts/20250404-llm-framework3/ google開源ADK-Agent Development Kit 開源的、代碼優先的 Python 工具包&#xff0c;用于構建、評估和部署具有靈活性和控制力的復雜智能體項目倉庫:https://github.com/google/adk-python 2.6k項目文檔:Age…

VM——相機拍照失敗

1、問題&#xff1a;相機頻閃觸發&#xff0c;在MVS中正常出圖&#xff0c;在VM中出現拍照失敗 2、解決&#xff1a; 1、首先排查網絡設置&#xff08;巨幀是否設置&#xff09; 2、電腦的所有防火墻是否關閉 3、在MVS中恢復相機的設置參數為默認參數&#xff0c;刪除VM中的全…

【時頻譜分析】小波分析

算法配置頁面&#xff0c;也可以一鍵導出結果數據 報表自定義繪制 獲取和下載【PHM學習軟件PHM源碼】的方式 獲取方式&#xff1a;Docshttps://jcn362s9p4t8.feishu.cn/wiki/A0NXwPxY3ie1cGkOy08cru6vnvc

怎么免費下載GLTF/GLB格式模型文件,還可以在線編輯修改

? 現在非常流行glb格式模型&#xff0c;和gltf格式文件&#xff0c;可是之類模型網站非常非常少 1&#xff0c;咱們先直接打開http://glbxz.com 官方glb下載網站 glbxz.com 2 可以搜索&#xff0c;自己想要的模型關鍵詞 3&#xff0c;到自己想下載素材頁面 4&#xff0c;…

【6】深入學習http模塊(萬字)-Nodejs開發入門

深入學習http模塊 前言http一個Web服務器項目創建代碼運行代碼解析 Server屬性&#xff1a;keepAlive屬性&#xff1a;keepAliveTimeout屬性&#xff1a;maxHeaderSize屬性&#xff1a;requestTimeout屬性&#xff1a;maxRequestsPerSocket方法&#xff1a;close()方法&#xf…

buuctf sql注入類練習

BUU SQL COURSE 1 1 實例無法訪問 / Instance cant be reached at that time | BUUCTF但是這個地方很迷惑就是這個 一個 # 我們不抓包就不知道這個是sql注入類的判斷是 get 類型的sql注入直接使用sqlmap我們放入到1.txt中 目的是 優先檢測 ?id1>python3 sqlmap.py -r 1.t…

(即插即用模塊-特征處理部分) 三十二、(TGRS 2024) MDAF 多尺度雙表示對齊過濾器

文章目錄 1、Multiscale Dual-Representation Alignment Filter2、代碼實現 paper&#xff1a;SFFNet: A Wavelet-Based Spatial and Frequency Domain Fusion Network for Remote Sensing Segmentation Code&#xff1a;https://github.com/yysdck/SFFNet 1、Multiscale Dual-…

Python 中為什么 hash(-1) == hash(-2)?

推薦超級課程: 本地離線DeepSeek AI方案部署實戰教程【完全版】Docker快速入門到精通Kubernetes入門到大師通關課AWS云服務快速入門實戰目錄 讓我們從哪里開始?獲取源代碼!讓我們瀏覽一下這是正確/完整的答案嗎?結論前幾天在瀏覽 Reddit 時,我在 r/Python 上看到了這樣一個…