1. 程式人生 > >Linux的檔案傳輸

Linux的檔案傳輸

前言

linux伺服器之間傳輸檔案的有四種方式
1. wget是一個從網路上自動下載檔案的自由工具,支援通過HTTP、HTTPS、FTP三個最常見的TCP/IP協議下載,並可以使用HTTP代理。
2. scp就是secure copy,是用來進行遠端檔案拷貝的。資料傳輸使用 ssh,並且和ssh 使用相同的認證方式,提供相同的安全保證 。
3. rcp指令用在遠端複製檔案或目錄,如同時指定兩個以上的檔案或目錄,且最後的目的地是一個已經存在的目錄,則它會把前面指定的所有檔案或目錄複製到該目錄中。
4. rsync是類unix系統下的資料映象備份工具,從軟體的命名上就可以看出來了remote sync。它的操作方式和scp和相似,但是比scp強大很多。使用雙冒號分割主機名和檔案路徑時,是使用rsync伺服器,這裡主要介紹rsysnc的用法

rsync 的遠端同步

環境:真機使用ssh連線兩臺虛擬機器上一臺client:172.25.254.1一臺server:172.25.254.2
在這裡插入圖片描述

例1:將server內的/etc目錄傳同步到client的/mnt目錄下
在這裡插入圖片描述

[[email protected] mnt]# rsync -r /etc [email protected]:/mnt/		#注意:要將etc目錄傳遞過去,則不可以加斜槓"/":etc/ 。否則就是傳遞etc內全部檔案不包括etc目錄

例2:區分rsync不同引數的作用
首先已知server裡的dir檔案的資訊為:
在這裡插入圖片描述

1. [[email protected]
mnt]# rsync -r dir [email protected]:/mnt/ #默認同步會忽略掉檔案屬性,連結檔案,裝置檔案等... 2. -rp dir [email protected]:/mnt/ #t同步許可權 3. -rpo dir [email protected]:/mnt/ #同步檔案的所有人 4. -rpog dir [email protected]:/mnt/ #同步檔案的所有組 5. -rt dir [email protected]:/mnt/ #同步時間 6. -rl dir
[email protected]
:/mnt/ #同步連結 7. -rD dir [email protected]:/mnt/ #同步裝置檔案

在這裡插入圖片描述

歸檔和壓縮檔案

歸檔

tar
打包:將一大堆檔案或目錄變成一個總的檔案【tar命令】
壓縮:將一個大的檔案通過一些壓縮演算法變成一個小檔案【gzip,bzip2等】

Linux中很多壓縮程式只能針對一個檔案進行壓縮,這樣當你想要壓縮一大堆檔案時,你得將這一大堆檔案先打成一個包(tar命令),然後再用壓縮程式進行壓縮(gzip bzip2命令)。

tar 常用的引數

tar -c 			#建立一個歸檔檔案
	-v			#顯示過程
	-f			#指定歸檔檔名稱
	-x			#解檔
	-t			#檢視歸檔檔案內容
	-r			#新增檔案到歸檔中
	--get		#解檔指定檔案
	--delete	#刪除歸檔中的指定檔案
	-C			#指定解檔目錄

例項

將etc目錄歸檔和解檔

tar -cf etc.tar etc/			#歸檔
tar -xf etc.tar 				#解檔
tar -rf etc.tar file			#將file新增到歸檔中
tar -tf etc.tar 				#檢視歸檔檔案內容
tar -f etc.tar --get file		#將file從歸檔檔案中解檔
tar -f etc.tar --delete file	#將file從歸檔中刪除
tar -xf etc.tar -C /etc/		#將目錄etc從歸檔中解檔

在這裡插入圖片描述

壓縮

常用的壓縮打包方式有zip gz gz2 xz這四種
而壓縮可以把檔案的大小變小進而提升傳輸速度

例項:
使用zip壓縮38M的etc.atr歸檔檔案並檢視壓縮後大小

關鍵命令:
zip -r etc.tar.zip etc.tar	#壓縮為 .zip格式
unzip etc.tar.zip			#解壓

可以看到壓縮少了22M
可以看到壓縮少了22M

使用gz壓縮38M的etc.atr歸檔檔案並檢視壓縮後大小

關鍵命令:
gzip etc.tar		#t壓縮為 .gz 格式
gunzip etc.tar.gz  	#解壓
===等價於
tar zcf etc.tar.gz /etc
tar zxf etc.tar.gz

在這裡插入圖片描述
縮小了26M

使用gz壓縮38M的etc.atr歸檔檔案並檢視壓縮後大小

關鍵命令:
bzip2 etc.tar				#壓縮為 .gz2 格式
bunzip2 etc.tar.gz2			#解壓
===也等價於
tar jcf etc.tar.ba2 /etc/

在這裡插入圖片描述
縮小到了9.5M

同樣的xz為
xz etc.tar		#壓縮為 .xz格式
unxz etc.tar.xz	#解壓

這四種打包格式中 gz xz bz2 可以打包壓縮一步完成
所以有

tar zcf etc.tar.gz /etc/		#打包為 .gz格式
tar xcf etc.tar.bz2 /etc		#打包為 .bz2格式
tar Jcf etc.tar.xz etc			#打包壓縮為 .xz格式

在這裡插入圖片描述