Linux——文件與文件系統的壓縮,打包與備份

壓縮比:壓縮後/壓縮前佔用磁盤空間大小linux

  • 【 .Z 】compress程序壓縮
  • 【 .zip 】zip程序壓縮
  • 【 .gz 】gzip程序壓縮

能夠解開compress、zip、gzip壓縮的文件
圖片描述
只能針對一個文件進行壓縮session

gzip【文件】  壓縮單個文件,本來的文件被壓縮爲.gz的檔名,源文件不存在
gzip -v 【文件】  顯示壓縮比
zcat 【文件.gz】   查看解壓縮以後的源文件
gzip -d 【文件.gz】  解壓縮.gz文件,.gz文件不存在
zgrep -n '關鍵字' 【文件.gz】  在.gz文件中,找出關鍵字在哪幾行
gzip -c 【文件】>【文件.gz】  壓縮文件保留源文件

.bz2

bzip2程序壓縮,比gzip擁有更好的壓縮比
圖片描述工具

bzip2【文件】  壓縮單個文件,源文件不存在
bzip2 -v 【文件】  顯示壓縮比
bzcat 【文件.bz2】   查看解壓縮以後的源文件
bzip2 -d 【文件.bz2】  解壓縮文件,bz2文件不存在
bzgrep -n '關鍵字' 【文件.bz2】  在壓縮文件中,找出關鍵字在哪幾行
bzip2 -c 【文件】>【文件.gz2】  壓縮文件保留源文件

.xz

xz程序壓縮,比gz、bzip2擁有更高的壓縮比
圖片描述測試

xz【文件】  壓縮單個文件,源文件不存在
xz -v 【文件】  顯示壓縮比
xz -l 【壓縮包】  顯示文件壓縮先後容量
xzcat 【文件.xz】   查看解壓縮以後的源文件
xz -d 【文件.xz】  解壓縮文件,xz文件不存在
xz -k 【文件】  保留源文件,並創建壓縮文件

.tar

tar程序打包的文件,沒有壓縮spa

tarfile:tar -cv -f 【文件】  不壓縮,只打包
tarball :tar -jcv -f 【文件】 壓縮打包
tar -cvf - /etc | tar -xvf -   一邊打包一邊在/tmp解開

.tar.gz

tar程序打包的文件,通過gzip壓縮rest

.tar.bz2

tar程序打包的文件,通過gzip壓縮code

.tar.xz

tar程序打包的文件,通過xz壓縮
圖片描述圖片

  • 壓 縮:
tar -jcv -f 【文件/目錄.tar.bz2】【要被壓縮的文件/目錄】
  • 查 詢:
tar -jtv -f 【文件/目錄.tar.bz2】
  • 解壓縮:
tar -jxv -f 【文件/目錄.tar.bz2】-C 【解壓縮目錄】
  • 查找壓縮包裏的文件:
tar -jtv -f 【文件/目錄.tar.bz2】| grep '關鍵字'
  • 解壓縮文件特定的文件:
tar -jxv -f 【文件/目錄.tar.bz2】【待解開文件】

打包目錄,可是不包含目錄下的某些文件

tar -jcv -f 【文件.tar.bz2】--exclude=【文件】【要被壓縮的文件目錄】ip

/* tmp文件目錄下的test開頭的文件不壓縮 */
# tar -jcv -f /root/test.tar.bz2 --exclude=/tmp/test* /tmp

/tmp目錄下的文件
圖片描述
壓縮後查找壓縮包有關test的文件
圖片描述it

打包比某個時刻還要新的文件

tar -jcv -f 【文件.tar.bz2】 --newer-mtime="時間" 【要被壓縮目錄】

/* 備份etc目錄下時間比2015/06/17還要新的文件 */
tar -jcv -f /root/etc.newe/17r.then.passwd.tar.bz2 --newer-mtime="2015/06/17" /etc/*

xfsdump

文件系統備份,能夠累計備份,就是說能夠更新與第一次備份中不同的數據
圖片描述

  • 只能備份已掛載的文件系統
  • 必須使用root權限才能操做
  • 只能備份XFS文件系統
  • 備份的數據只能讓xfsrestore
  • 不能備份兩個具備相同UUID的文件系統

圖片描述
僅支持文件系統備份,不支持特定目錄的備份。

xfsdump -l 0 -L boot_all -M boot_all -f /srv/boot.dump /boot
備份文件創建在/srv/boot.dump,備份文件相關信息/var/lib/xfsdump/inventory

圖片描述
xfsdump -I 列出備份信息狀態
圖片描述

xfsrestore

文件系統還原
圖片描述
xfsrestore和xfsdump顯示的內容都同樣,都是顯示備份文件的信息狀態

簡單復原level 0的系統文件
xfsrestore -f 【備份文件】 -L 【session label】 【目的目錄】
xfsrestore -f /srv/boot.dump -L boot_all /boot

僅還原部分文件的xfsrestore互動模式

xfsrestore -f 【備份文件】 -i 【目錄】

圖片描述

光盤寫入工具

文本模式刻錄光盤步驟:

  • mkisofs指令,將所需備份的數據建成一個映像檔(iso)
  • cdrecord指令將文件刻錄至光盤或DVD

mkisofs

創建映像檔,製做通常數據光盤映像文件
圖片描述
光盤的格式通常爲iso9660,這種格式通常僅支持舊版的DOS檔名,檔名只能以8.3(文件名8個字符,擴展名3個字符)方式存在。

將home、etc目錄的數據通通刻錄到/tmp/system.img
mkisofs -r -v -o /tmp/system.img /home /etc
mkisofs -r -V 'linux_file' -o /tmp/system.img -graft-point /home=/home /etc=/etc

等號左邊是映像文件內的目錄,右邊是實際數據

製做/修改可開機光盤映像檔

圖片描述
rsync指令能夠複製全部的權限屬性等數據,也可以進行鏡像處理
圖片描述

cdrecord

光盤刻錄工具
圖片描述
查詢刻錄機的方式:
圖片描述
進行CD/DVD刻錄:
圖片描述
開始刻錄:
圖片描述
刻錄完畢,測試掛載
圖片描述
其餘常見的壓縮與備份工具:

【 dd 】——備份,直接讀取扇區「sector」

圖片描述

dd if=【輸入目錄】 of=【輸出目錄】
示例1:備份光盤

圖片描述

示例2:備份到USB

圖片描述

示例3:將/boot整個文件系統經過dd備份下來 (df /boot 查看boot掛載點)

圖片描述

【 cpio 】——能夠備份任何東西,包括設備文件

cpio不會主動去找文件備份,須要配合其它指令告訴cpio該備份的數據在哪裏
圖片描述

find 【文件】 | cpio -ocvB >【備份文件】  備份文件
cpio -idvc <【備份文件】   解開備份文件

cpio很笨,不會理會給的路徑是相對路徑仍是絕對路徑,若是加上絕對路徑的 / 開頭,那麼在解開的時候,它會必定會覆蓋掉本來的/boot

相關文章
相關標籤/搜索