推薦一款輕量卻功能強(qiáng)大的 Linux 系統(tǒng)快照備份與恢復(fù)工具!再也不用擔(dān)心刪庫(kù)要跑路了。
前言
在 Linux 系統(tǒng)的運(yùn)維管理中,可靠的快照備份與恢復(fù)工具尤為關(guān)鍵。TimeShift 作為一款輕量化卻功能強(qiáng)大的快照工具,廣泛應(yīng)用于系統(tǒng)狀態(tài)的備份與恢復(fù)。本文將深入探討 TimeShift 的原理、備份方式、優(yōu)缺點(diǎn),以及如何通過(guò)真實(shí)操作驗(yàn)證 TimeShift 的備份恢復(fù)效果。
TimeShift 的工作原理
TimeShift 通過(guò)文件系統(tǒng)快照實(shí)現(xiàn)備份與恢復(fù),支持基于 rsync
和 Btrfs
兩種模式:
- Rsync 模式:利用 rsync 工具的增量備份功能,僅備份變化的文件。
- Btrfs 模式:依賴于 Btrfs 文件系統(tǒng)的原生快照功能,以更高的效率完成備份。
兩者的不同在于:Rsync
模式適用于任何文件系統(tǒng),但速度相對(duì)慢;而 Btrfs
模式僅適用于 Btrfs 文件系統(tǒng),備份和恢復(fù)速度更快。
TimeShift 的備份方式
TimeShift 的備份分為手動(dòng)和自動(dòng):
- 手動(dòng)備份:通過(guò)命令行或圖形界面,按需創(chuàng)建快照。
- 自動(dòng)備份:根據(jù)配置文件中的時(shí)間策略自動(dòng)創(chuàng)建快照。支持按小時(shí)、每日、每周和每月等多種頻率。
優(yōu)缺點(diǎn)對(duì)比:
- 優(yōu)點(diǎn):自動(dòng)化程度高,增量備份占用存儲(chǔ)小,支持多版本快照管理。
- 缺點(diǎn):無(wú)法選擇備份特定文件或目錄,限制較大。
TimeShift 的安裝和配置
在 Ubuntu Server 24
系統(tǒng)上,安裝 TimeShift:
sudo apt update
sudo apt install timeshift
配置 TimeShift 時(shí),可以編輯 /etc/timeshift/timeshift.json
文件,將“備份設(shè)備”設(shè)置為適合的磁盤(pán),并根據(jù)需求修改快照的 exclude
(排除)項(xiàng)。
示例配置文件內(nèi)容:
{
"backup_device_uuid": "YOUR-DEVICE-UUID",
"btrfs_mode": "false",
"schedule_daily": "true",
"count_daily": "5",
"exclude": [
"/home/**",
"/root/**"
]
}
TimeShift 的實(shí)際操作流程
創(chuàng)建系統(tǒng)快照
首先執(zhí)行一次完整快照:
sudo timeshift --create --comments "Initial Snapshot" --tags D
查看已創(chuàng)建的快照
使用以下命令查看當(dāng)前快照:
sudo timeshift --list
刪除舊快照
可以使用 --delete
參數(shù)刪除舊快照,釋放空間:
sudo timeshift --delete --snapshot "Name(時(shí)間)"
# 如下:
sudo timeshift --delete --snapshot '2024-11-11_17-23-52'
還原快照
當(dāng)系統(tǒng)出現(xiàn)問(wèn)題時(shí),通過(guò)還原快照快速恢復(fù):
sudo timeshift --restore --snapshot "Name(時(shí)間)"
# 如下:
sudo timeshift --restore --snapshot '2024-11-11_17-23-52'
TimeShift 快照操作步驟
下面是詳細(xì)的備份和恢復(fù)步驟。
設(shè)置備份目標(biāo)目錄
我們可以通過(guò)配置 /etc/timeshift/timeshift.json
中的 backup_device_uuid
來(lái)確定備份位置。通過(guò)如下命令可以查看磁盤(pán) UUID
:
blkid
自定義備份和排除目錄
在配置文件中 exclude
參數(shù)中可以追加自定義排除的目錄:
"exclude": [
"/home/**",
"/root/**"
]
開(kāi)始備份操作
執(zhí)行一次完整備份:
sudo timeshift --create --comments "Manual Backup"
還原到指定快照
使用 --restore
命令將系統(tǒng)還原至特定快照:
sudo timeshift --restore --snapshot "Name(時(shí)間)"
# 如下:
sudo timeshift --restore --snapshot '2024-11-11_17-23-52'
測(cè)試 TimeShift 備份還原的效果
我們可以通過(guò)安裝一個(gè)新的軟件(如 PHP
),來(lái)測(cè)試 TimeShift 快照的備份與還原是否正常工作:
備份前的系統(tǒng)狀態(tài)
首先,執(zhí)行一次完整的系統(tǒng)快照。確保在備份前,系統(tǒng)中還沒(méi)有安裝 PHP,執(zhí)行以下命令驗(yàn)證:
php --version
若系統(tǒng)返回 “command not found”,說(shuō)明 PHP 未安裝。
現(xiàn)在運(yùn)行以下命令創(chuàng)建一個(gè)快照:
sudo timeshift --create --comments "Pre-PHP Installation Snapshot" --tags D
安裝 PHP 并驗(yàn)證
接著,我們通過(guò)包管理器安裝 PHP:
sudo apt update
sudo apt install php
安裝完成后,再次檢查 PHP 是否正確安裝:
php --version
若顯示 PHP 的版本信息,則說(shuō)明 PHP 安裝成功。
還原到快照并驗(yàn)證
現(xiàn)在,我們將系統(tǒng)恢復(fù)到安裝 PHP 之前的快照狀態(tài):
sudo timeshift --restore --snapshot 'Pre-PHP Installation Snapshot'
還原過(guò)程完成后,系統(tǒng)將恢復(fù)到之前的快照狀態(tài)。在恢復(fù)后會(huì)重啟系統(tǒng),以確保所有配置正確應(yīng)用。
重啟后,運(yùn)行以下命令再次檢查 PHP 狀態(tài):
php --version
如果系統(tǒng)返回 “command not found”,說(shuō)明 TimeShift 成功還原了快照,PHP 的安裝也一并被移除。
總結(jié)
TimeShift 在系統(tǒng)故障恢復(fù)和狀態(tài)回滾方面具有顯著優(yōu)勢(shì),特別是可以在不影響當(dāng)前系統(tǒng)使用的情況下,快速創(chuàng)建快照并恢復(fù)系統(tǒng)至任意指定狀態(tài)。本文通過(guò)實(shí)際操作展示了 TimeShift 的可靠性和操作簡(jiǎn)便性,使其成為服務(wù)器和工作環(huán)境下備份與災(zāi)難恢復(fù)的理想選擇。
補(bǔ)充說(shuō)明:默認(rèn)不備份的目錄與原因
TimeShift 默認(rèn)會(huì)跳過(guò)以下一些目錄,以確保備份和恢復(fù)的效率、空間占用和可靠性:
/dev
、/proc
、/sys
、/run
:這些目錄屬于動(dòng)態(tài)、虛擬文件系統(tǒng)。它們包含設(shè)備文件、內(nèi)核和進(jìn)程信息等。備份這些目錄并沒(méi)有實(shí)際意義,因?yàn)槠鋬?nèi)容會(huì)在系統(tǒng)啟動(dòng)時(shí)自動(dòng)生成,且不包含持久數(shù)據(jù)。/tmp
:臨時(shí)文件目錄,用于存放短期使用的文件。系統(tǒng)重啟后,該目錄內(nèi)容會(huì)被清空,備份它沒(méi)有實(shí)際作用。/media
、/mnt
:掛載點(diǎn)目錄,主要用于掛載外部存儲(chǔ)設(shè)備和臨時(shí)文件系統(tǒng)。備份它們可能會(huì)包含無(wú)關(guān)的外部數(shù)據(jù),占用備份空間。
活動(dòng)目錄的備份注意事項(xiàng)
對(duì)于一些活動(dòng)性很強(qiáng)的目錄,如 /var
和 /home
下的部分?jǐn)?shù)據(jù)(例如數(shù)據(jù)庫(kù)和日志文件),TimeShift 也建議謹(jǐn)慎對(duì)待:
- 活動(dòng)中的數(shù)據(jù)庫(kù)或日志文件:例如
/var/lib/mysql
中的數(shù)據(jù)庫(kù)文件,通常需要在數(shù)據(jù)庫(kù)服務(wù)關(guān)閉或停止寫(xiě)入時(shí)才能進(jìn)行一致性備份。如果數(shù)據(jù)庫(kù)在運(yùn)行時(shí)備份,可能會(huì)導(dǎo)致數(shù)據(jù)不完整或數(shù)據(jù)不一致問(wèn)題。 - 動(dòng)態(tài)生成的日志和緩存:例如
/var/log
中的日志文件和 /var/cache
中的緩存文件。這些內(nèi)容在系統(tǒng)使用過(guò)程中持續(xù)變化,備份時(shí)會(huì)浪費(fèi)大量存儲(chǔ)空間,并且在恢復(fù)時(shí)不會(huì)對(duì)系統(tǒng)配置和正常功能產(chǎn)生實(shí)際影響。
?因此,TimeShift 主要關(guān)注系統(tǒng)配置和核心文件,而將頻繁更新的活動(dòng)目錄或臨時(shí)文件排除在備份之外,以優(yōu)化備份效率和系統(tǒng)穩(wěn)定性。
TimeShift 非常適合服務(wù)器和工作環(huán)境的備份和災(zāi)難恢復(fù)需求。理解這些目錄的特性,可以幫助我們更好地使用 TimeShift 進(jìn)行備份和恢復(fù),確保備份的完整性和有效性。
鏈接:https://blog.csdn.net/weixin_41004518/article/details/143702369
閱讀原文:原文鏈接
該文章在 2025/9/24 9:41:28 編輯過(guò)