導航:首頁 > 文件處理 > pigz解壓某個文件

pigz解壓某個文件

發布時間:2024-07-29 01:57:42

㈠ Arch上的備份還原

入坑Arch,主要方便自己查詢和剛入坑經常玩掛的朋友,其他發行版應該大同小異。

linux上主要的備份方式 我知道的有 dd 和 tar

相比來說 tar打包顯得比較靈活,可以用於本機備份恢復,也可以恢復到其他計算機,打包的目錄可以完全按自己需要。這里主要介紹tar打包以及本機的恢復。

tar打包 可以只打包不壓縮,速度會比較快,但是你可能會面對一個 好幾十G的系統備份包,並不推薦。

壓縮 可以用gzip或者Bzip2 (好像還有其他的,不熟悉,就不做介紹了) 二者相比,gzip速度相對較快,但壓縮比率比Bzip2略低。

我這里並不用這兩個軟體打包,因為兩個都是單線程,打包速度會非常慢。。。曾經用bzip2打包等到天荒地老都沒好。。。

那麼重頭戲來了! 偶然的機會知道了一個叫pigz的多線程壓縮軟體,採用與gzip相同的壓縮方式,默認以邏輯CPU的個數的線程進行壓縮,具體線程還可以自定義,速度飛快,詳細可以網路 pigz。

那麼 tar能不能調用pigz進行壓縮呢? 答案是肯定的!

看一下tar的man手冊

-I, --use-compress-program=COMMAND

Filter data through COMMAND. It must accept the -d option,

for decompression. The argument can contain command line

Options.

發現tar是可以指定其他壓縮程序進行壓縮的。

於是直接 sudo pacman -S pigz 安裝(arch官方源就有)下面就可以開始打包了!

進入根目錄 然後執行:

sudo tar --use-compress-program=pigz -cvpf arch-backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/arch-backup.tgz --exclude=/mnt --exclude=/sys --exclude=/run/media /

簡單介紹一下命令,--use-compress-program=pigz 是用pigz壓縮,arch-backup.tgz是打包之後的文件名,--exclude=/xxx是打包時排除的目錄,這里簡單的排除了一些不需要的目錄,具體排除的內容可以根據自己的發行版和需要設定,--exclude=/arch-backup.tgz 是排除根目錄下的自身,因為我是在根目錄下進行的操作,如果不排除自身的話,打包可能會進入一個死循環。。。你可能會打出一個巨型包。

這樣就開始進行壓縮打包了

用htop 可以看到 CPU滿載,大概3-5分鍾左右完成,比起單線程10%多的佔用 速度快了不知道多少倍!

完成候可以看到 28G左右的分區 打包完 是一個15G的壓縮包,個頭還是很大。。。也算可以接受。。不知道有沒有其他辦法能夠再小點

打包完成後,你可能會看到一條錯誤信息,具體原因小白不懂,不過並沒有什麼影響。然後將備份的包放到一個你覺得安全的地方。

至此,所有備份工作都已經完成,系統掛了可以用下面的方法恢復

---------------------------------------------------------------------------------------------------------------

首先需要准備一個能夠引導的liveCD的U盤

進入liveCD之後 先用wifi-menu聯網,因為liveCD上沒有pigz,如果不想解壓恢復的時候用半年的話就聯網裝上再解壓吧

Ping一下網路看看是否聯網成功,之後簡單配置下源 就可以安裝pigz了

sudo nano /etc/pacman.d/mirrorlist 配置源

安裝pigz

要用到的pigz准備好之後就可以掛載磁碟 進行恢復了。

lsblk簡單看下各個分區情況

我這里sdc1是boot分區 sdc2是/分區 sdb3是保存備份的分區

直接新建了一個目錄掛載 sdb3

mkdir /f

mount /dev/sdb3 /f

然後掛載 目標linux根分區到/mnt目錄, 我的arch只分了 boot和/分區,並且備份的時候 忘記排除boot目錄了,所以這里索性都掛載上幹掉。掛載之後如圖

現在就可以幹掉已經損壞的系統了

rm -rf /mnt/*

命令很危險,一定要看清楚,想清楚了之後再執行,我真是怕小手一抖就把不想幹掉的分區幹掉了

boot目錄因為是分區掛載點提示設備忙,這個目錄並沒有被刪掉,不過ls一下可以看見/mnt下只剩boot目錄,/mnt/boot下所有的引導文件也都沒有了

萬事俱備,下面進行解壓恢復 還是使用pigz進行多線程解壓

#tar --use-compress-program=pigz -xvpf /f/sysbackup/arch-backup-20160331.tgz -C /mnt

這里自行把備份路徑替換掉。接下來就是解壓過程如圖:

用不了多久 也就2-3分鍾 解壓完成!(ssd)

ls看看 幹掉的文件是不是都回來了呢

OK,問題ない!

到這里,恢復工作已經接近尾聲,還記得備份的時候排除掉的目錄么,重建排除的目錄

然後直接reboot重啟

前面幹掉了 / 分區所有文件真的 大丈夫?

因為我之前把boot一起幹掉了,所以看到這里就表面恢復成功了!

所有備份恢復工作全部完成!

總結起來,主要是利用了 pigz 的多線程提高 壓縮解壓的效率,比普通的gzip或者bzip2快很多!缺點還是比較明顯,就是備份的包個頭略大,不知道怎麼能夠再小點

而且我只涉及了本機恢復,如果恢復到其他機子,還涉及到fstab修改之類的一些收尾工作。

拋磚引玉,如果有其他好的方法 歡迎交流!

閱讀全文

與pigz解壓某個文件相關的資料

熱點內容
游戲aoi演算法 瀏覽:842
phpmysqlint 瀏覽:910
怎麼從appstore商城買東西 瀏覽:182
大秀直播平台源碼 瀏覽:418
java視屏 瀏覽:932
電腦中如何給程序加密 瀏覽:238
java排序容器 瀏覽:942
職稱證書在哪個app下載 瀏覽:362
四九演算法算男女 瀏覽:659
javawindows8 瀏覽:496
2021世界程序員節 瀏覽:484
php翼支付 瀏覽:882
盈通伺服器ip地址 瀏覽:789
3des演算法的c語言實現 瀏覽:873
網上怎樣購買伺服器地址 瀏覽:813
新氧app都在哪個城市 瀏覽:731
十二大加密貨幣圖片 瀏覽:315
資料庫日誌自動壓縮 瀏覽:929
手機表格文檔用哪個app 瀏覽:77
找人開發app的公司怎麼樣 瀏覽:652