1. 程式人生 > >linux中的系統檔案傳輸、歸檔、壓縮

linux中的系統檔案傳輸、歸檔、壓縮

環境為redhat系統內有兩臺虛擬機器,分別是desktop(主機名為node1)和server(主機名為node2)。所有操作均在虛擬機器內操作。

首先說一下如何修改主機名

hostnamectl set-hostname node2.example.com                  ##修改使用者名稱為node2

 

一、rsync資料映象備份工具,用法格式有點像scp,但與scp有一些區別,rsync比scp更快

例如 : scp  /etc  和 /etc/沒有區別

               rsync   /etc 表示包含etc目錄    /etc/    不包含etc目錄

rsync   -<>        dir            [email protected]     ##備份檔案到伺服器 
rsync   -<>        [email protected]    dir             ##備份檔案到本機
rsync   -r   rsync -r /etc/ [email protected]:/nmt       ##遞迴備份目錄

1.用一個實驗來理解rsync的用法

touch lei{1..5}
chown student.student *
chmod 777 *
ln -s /mnt/lei1 /mnt/file
ll

 

rsync -r /mnt/ [email protected]:/mnt/

 

檢視同步後的檔案,會發現,許可權和時間以及擁有者和使用者組都不一樣,還跳過了軟連結

那麼如何才能將這些屬性都完全複製呢

rsync
         -r        ##遞迴備份目錄
         -l        ##保留軟連結檔案
         -p        ##保留檔案許可權
         -t        ##保留檔案時間戳
         -g        ##保留檔案使用者組
         -o        ##保留檔案擁有者

按照上面rsync的註釋,我們輸入命令

rsync -rpogtl /mnt/ [email protected]:/mnt/

 

這樣就成功的將檔案的各個屬性成功的複製到了node 2這臺主機上

linux系統中還有一些硬體資訊等檔案,需要用到下面D這個引數

rsync       -Dr        ##保留檔案裝置資訊

二.tar歸檔,可歸檔的檔案不包括連結檔案

tar    -c                        ##建立一個歸檔檔案的引數指令 (create 的意思 )
       -x                        ##解開一個歸檔檔案的引數指令
       -t                        ##檢視tarfile裡面的檔案                               
       -v                        ##壓縮的過程中顯示檔案
       -f                        ##指定打包檔名名
       -f     --get              ##單獨獲取一個檔案
       -f     --delete           ##刪除其中一個檔案
       -p                        ##使用原檔案的原來屬性
       -P                        ##可以使用絕對路徑來歸檔
       -xf  file   -C dir        ##將檔案歸檔到某個目錄

1.把etc目錄歸檔且名字設為etc.tar

tar  cf etc.tar /etc

 

2.如何檢視歸檔的檔案內容

tar tf etc.tar

3.如何新增檔案進歸檔檔案

tar -rf etc.tar lei1

 

tar tf etc.tar

 

4.如何使歸檔檔案釋放

tar xf etc.tar

 

5.如何在歸檔檔案中取出一個自己想要的檔案

tar -f etc.tar --get lei1

 

6.如何刪除歸檔檔案中的一個檔案

tar -f etc.tar --delete lei1

 

tar tf etc.tar            ##c看上一個這個命令的最後,會發現這了lei1檔案已經不見了

7.如何把歸檔檔案解除歸檔到某個目錄

tar -xf etc.tar -C /home/Public

 

3.壓縮

linux支援四種壓縮,zip、gz、bz2、xz,壓縮是一種通過特定的演算法來減小計算機檔案大小的機制。這種機制是一種很方便的發明 , 尤其是對網路使用者 , 因為它可以減小檔案的位元組總數 , 使檔案能夠通過較慢的網際網路連線實現更快傳輸 , 此外還可以減少檔案的磁碟佔用空間。

gzip/bzip/xz/zip  file(壓縮成的) file(被壓縮的)     ##壓縮檔案
    -r                                               ##遞迴壓縮
gunzip/bunzip/unxz/unzip   file(要解壓的)            ##解壓檔案
du -sh file       ##檢視檔案大小
file file(檔案)  ##檢視檔案型別

 1.如何把檔案壓縮成zip格式的

zip -r etc.tar.zip etc.tar

 

如何解壓zip檔案的格式

unzip  etc.tar.zip

 

2.如何把檔案壓縮成gz格式

gzip etc.tar

如何把gz檔案解壓縮

gunzip etc.tar.gz

 

3.如何把檔案壓縮成bz2格式

bzip2 etc.tar

如何解壓bz2格式的檔案

bunzip2 etc.tar.bz2

4.如何把檔案壓縮成xz格式

xz etc.tar

 

如何解壓xz格式

unxz etc.tar.xz

 

總結,綜合來看 ,xz格式的檔案壓縮後最小,但耗時最長

四、如何使歸檔和壓縮同時進行

tar    -z                        ##用gzip壓縮 
       -j                        ##用bzip2壓縮
       -J                        ##用xz縮                

1.如何將檔案歸檔並且壓縮成zip格式

tar -zcf etc.tar.gz /etc

 

2.如何將檔案歸檔並且壓縮成bz2格式

tar jcf etc.tar.bz2 /etc

3.如何將檔案歸檔並且壓縮成xz格式

tar Jcf etc.tar.xz /etc