搜尋
首頁系統教程LinuxLinux tar指令進階用法-備份數據

Linux tar指令進階用法-備份數據

Feb 12, 2024 pm 10:10 PM
linuxlinux教程linux系統linux指令shell腳本overflow嵌入式linuxlinux入門linux學習

Linux 系統上有一個強大的 tar 指令。 tar 最初是為了製作磁帶備份(tape archive)而設計的,它可以將檔案和目錄備份到磁帶中,並從磁帶中提取或還原檔案。現在,我們可以使用 tar 來將資料備份到任何儲存媒體。它是一種檔案級備份,不需要考慮底層檔案系統的類型,並且支援增量備份。

Linux tar命令高级用法——备份数据

#1.部分常用選項

#●-z, –gzip:使用gzip工具(解)壓縮,後綴一般為.gz

●**-c, –create:**tar打包,字尾一般為.tar

●**-f, –file=:**後面立刻接打包或壓縮後得到的檔名

●**-x, –extract:**解包指令,與-c對應

#●-p:保留備份資料的原本權限和屬性

●**-g:**後接增量備份的快照檔案

●**-C:**指定解壓縮的目錄

●**–exclude:**排除不打包的目錄或文件,支援正規匹配

其他

●**-X, –exclude-from:**在一個檔案中列出要排除的目錄或檔案(在–exclude=較多時使用)

●**-t, –list:**列出備份檔案中的文件列表,不與-c、-x同時出現

●**-j, –bzip2:**使用bzip2工具(解)壓縮,後綴一般為.bz2

●**-P:**保留絕對路徑,解壓縮時同樣會自動解壓縮到絕對路徑下

●**-v:**(解)壓縮過程顯示檔案處理過程,常用但不建議對大型檔案使用

2.增量備份(網站)資料

許多系統(應用程式或網站)每天都有靜態檔案產生,對於一些比較重要的靜態檔案如果有進行定期備份的需求,就可以透過tar打包壓縮備份到指定的地方,特別是對一些總文件比較大比較多的情況,還可以利用-g選項來做增量備份。

備份的目錄最好使用相對路徑,也就是進入需要備份的根目錄下

具體範例方法如下。

#
备份当前目录下的所有文件# tar -g /tmp/snapshot_data.snap -zcpf /tmp/data01.tar.gz .在需要恢复的目录下解压恢复# tar -zxpf /tmp/data01.tar.gz -C .

#-g選項可以理解備份時給目錄文件做一個快照,記錄權限和屬性等信息,第一次備份時/tmp/snapshot_data.snap不存在,會新建一個並做完全備份。當目錄下的文件有修改後,再次執行第一條備份指令(記得修改後面的檔案檔案名稱),會自動根據-g指定的快照文件,增量備份修改過的文件,包括權限和屬性,沒有動過的檔案不會重複備份。

另外需要注意上面的恢復,是“保留恢復”,即存在相同文件名的文件會被覆蓋,而原目錄下已存在(但備份檔案裡沒有)的,會仍然保留。所以如果你想完全恢復到與備份檔案一模一樣,需要清空原始目錄。如果有增量備份檔案,則還需要使用相同的方式分別解壓縮這些檔案,並且要注意順序。

下面示範一個比較綜合的例子,要求:

●備份/tmp/data目錄,但cache目錄以及暫存檔案排除在外

●由於目錄比較大(>4G),所以全備時分割備份的檔案(如每個備份檔案檔案最大1G)

●保留所有檔案的權限和屬性,如使用者群組和讀寫權限

## cd /tmp/data

#做一次完全備份

# rm -f /tmp/snapshot_data.snap

## tar -g /tmp/snapshot_data.snap -zcpf – –exclude=./cache ./ | split -b 1024M – /tmp/bak_data$(date -I).tar.gz_

#分割後檔案名稱後會依序加上aa,ab,ac,…,上面最終的備份歸檔會儲存成

bak_data2014-12-07.tar.gz_aa

bak_data2014-12-07.tar.gz_ab

bak_data2014-12-07.tar.gz_ac

增量備份

可以是與完全備份一模一樣的指令,但需要注意的是假如你一天備份多次,可能導致檔案檔案名稱重複,那麼就會導致

備份實現,因為split依然會從aa,ab開始命名,如果一天的檔案產生(修改)量不是特別大,那麼建議增量部分不

分割處理了:( 一定要分割的話,檔案名稱加入更細緻的時間如$(date %Y-%m-%d_%H) )

# tar -g /tmp/snapshot_data.snap -zcpf /tmp/bak_data2014-12-07.tar.gz –exclude=./cache ./

隔天增備

# tar -g /tmp/snapshot_data.snap -zcpf /tmp/bak_data2014-12-08.tar.gz –exclude=./cache ./

#復原程序

#恢復完全備份的檔案檔案

可以選擇是否先清空/tmp/data/目錄

# cat /tmp/bak_data2014-12-07.tar.gz_* | tar -zxpf – -C /tmp/data/

恢復增量備份的檔案檔案

$ tar –zxpf /tmp/bak_data2014-12-07.tar.gz -C /tmp/data/

$ tar –zxpf /tmp/bak_data2014-12-08.tar.gz -C /tmp/data/

一定要保證是按時間順序恢復的,像下面檔名規則也可以使用上面通配符的形式

#如果需要定期備份,例如每週一次全備,每天一次增量備份,則可以結合crontab實作。

3.備份檔案系統

#備份檔案系統方法有很多,例如cpio, rsync, dump, tar,這裡示範一個透過tar備份整個Linux系統的例子,整個備份與復原過程與上方類似。

首先Linux(這裡是CentOS)有一部分目錄是沒必要備份的,例如/proc、/lost found、/sys、/mnt、/media、/dev、/proc、/tmp,如果是備份到磁帶/dev/st0則不必關心那麼多,因為我在這裡是備份到本地/backup目錄,所以也需要排除,還有其它一些NFS或網路儲存掛載的目錄。

#建立排除清單檔案

# vi /backup/backup_tar_exclude.list

/backup

/proc

/lost found

/sys

/mnt

/media

/dev

/tmp

$ tar -zcpf /backup/backup_full.tar.gz -g /backup/tar_snapshot.snap –exclude-from=/backup/tar_exclude.list /

#4.注意

#使用tar無論是備份資料或檔案系統,都需要考慮是在原始系統上恢復還是另一個新的系統上恢復。

●tar備份極度依賴檔案的atime屬性,

●文件所屬使用者是根據使用者ID來決定的,異機復原需要考慮相同使用者擁有相同USERID

●備份和復原的過程盡量不要執行其他進程,可能會導致資料不一致

●軟硬連線檔案可以正常恢復

以上是Linux tar指令進階用法-備份數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:良许Linux教程网。如有侵權,請聯絡admin@php.cn刪除
比較和對比Linux和Windows的安全模型。比較和對比Linux和Windows的安全模型。Apr 24, 2025 am 12:03 AM

Linux和Windows的安全模型各有優勢。 Linux提供靈活性和可定制性,通過用戶權限、文件系統權限和SELinux/AppArmor實現安全。 Windows則注重用戶友好性,依賴WindowsDefender、UAC、防火牆和BitLocker保障安全。

Linux和Windows之間的硬件兼容性有何不同?Linux和Windows之間的硬件兼容性有何不同?Apr 23, 2025 am 12:15 AM

Linux和Windows在硬件兼容性上不同:Windows有廣泛的驅動程序支持,Linux依賴社區和廠商。解決Linux兼容性問題可通過手動編譯驅動,如克隆RTL8188EU驅動倉庫、編譯和安裝;Windows用戶需管理驅動程序以優化性能。

Linux和Windows之間虛擬化支持有哪些差異?Linux和Windows之間虛擬化支持有哪些差異?Apr 22, 2025 pm 06:09 PM

Linux和Windows在虛擬化支持上的主要區別在於:1)Linux提供KVM和Xen,性能和靈活性突出,適合高定制環境;2)Windows通過Hyper-V支持虛擬化,界面友好,與Microsoft生態系統緊密集成,適合依賴Microsoft軟件的企業。

Linux系統管理員的主要任務是什麼?Linux系統管理員的主要任務是什麼?Apr 19, 2025 am 12:23 AM

Linux系統管理員的主要任務包括系統監控與性能調優、用戶管理、軟件包管理、安全管理與備份、故障排查與解決、性能優化與最佳實踐。 1.使用top、htop等工具監控系統性能,並進行調優。 2.通過useradd等命令管理用戶賬戶和權限。 3.利用apt、yum管理軟件包,確保系統更新和安全。 4.配置防火牆、監控日誌、進行數據備份以確保系統安全。 5.通過日誌分析和工具使用進行故障排查和解決。 6.優化內核參數和應用配置,遵循最佳實踐提升系統性能和穩定性。

很難學習Linux嗎?很難學習Linux嗎?Apr 18, 2025 am 12:23 AM

學習Linux並不難。 1.Linux是一個開源操作系統,基於Unix,廣泛應用於服務器、嵌入式系統和個人電腦。 2.理解文件系統和權限管理是關鍵,文件系統是層次化的,權限包括讀、寫和執行。 3.包管理系統如apt和dnf使得軟件管理方便。 4.進程管理通過ps和top命令實現。 5.從基本命令如mkdir、cd、touch和nano開始學習,再嘗試高級用法如shell腳本和文本處理。 6.常見錯誤如權限問題可以通過sudo和chmod解決。 7.性能優化建議包括使用htop監控資源、清理不必要文件和使用sy

Linux管理員的薪水是多少?Linux管理員的薪水是多少?Apr 17, 2025 am 12:24 AM

Linux管理員的平均年薪在美國為75,000至95,000美元,歐洲為40,000至60,000歐元。提升薪資可以通過:1.持續學習新技術,如雲計算和容器技術;2.積累項目經驗並建立Portfolio;3.建立職業網絡,拓展人脈。

Linux的主要目的是什麼?Linux的主要目的是什麼?Apr 16, 2025 am 12:19 AM

Linux的主要用途包括:1.服務器操作系統,2.嵌入式系統,3.桌面操作系統,4.開發和測試環境。 Linux在這些領域表現出色,提供了穩定性、安全性和高效的開發工具。

互聯網在Linux上運行嗎?互聯網在Linux上運行嗎?Apr 14, 2025 am 12:03 AM

互聯網運行不依賴單一操作系統,但Linux在其中扮演重要角色。 Linux廣泛應用於服務器和網絡設備,因其穩定性、安全性和可擴展性受歡迎。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境