<br />
<br />
(萌新折腾笔记)软件推荐:Timeshift快照备份——为你的NAS保驾护航
一、Timeshift 简介
Timeshift 是一款功能强大的系统快照工具,它能够在特定的时间点为系统创建备份(快照)。这些快照可以包含系统文件、配置、用户数据等关键信息。其主要目的是在系统出现问题时,如软件安装错误、系统更新故障或者遭受恶意软件攻击等情况下,能够快速地将系统恢复到之前的稳定状态,就像时间倒流一样,为用户节省大量重新配置和修复系统的时间和精力。
二、Timeshift的安装及使用
(一)安装前环境介绍及准备
- 示例中为新部署的虚拟机环境,使用了两块20G硬盘分别做系统盘和存储盘(默认vol1)
- 大部分人应该会把快照文件将会储存在阵列池里,故这里也将把快照文件储存于阵列中;外接硬盘的用法基本一致,仅有一个UUID的区别
- Timeshift安装部分这里默认在ssh下进行安装,恢复部分会分开演示
- ssh在飞牛网页端“设置--SSH--SSH功能“处进行开启
(二)安装Timeshift
Timeshift安装部分这里默认在ssh下进行安装,恢复部分会分开演示
首先,自然是要连接ssh,地址记得改为自己的ip
ssh 用户名@ip地址
#例如我的用户名为test,ip为172.16.235.128,输入如下
#ssh test@172.16.235.128
更新本地软件包列表:
sudo apt update
安装 Timeshift(回车确认即可):
sudo apt install timeshift
没有报错一般就安装成功了,如果不放心可以用dpkg命令进行验证
dpkg -l | grep timeshift
#显示如下即代表安装成功
#ii timeshift 22.11.2-1 amd64 System restore utility
(三)配置Timeshift
- 在进行配置之前,我们需要先了解配置文件的内容,此处以我自己实体机的配置文件举例
{ // 以下内容true代表是,false代表否,
"backup_device_uuid" : "d3d9d0c3-486c-4c6c-a4b0-a516a890acc7",
// 备份存储设备的 UUID
"parent_device_uuid" : "", // 父设备的 UUID(通常为空)
"do_first_run" : "false", // 是否执行首次运行设置,此处选否
"btrfs_mode" : "false", // 是否使用Btrfs文件系统模式,我们使用rsync模式,选否
"include_btrfs_home_for_backup" : "false", // 是否在备份中包含 Btrfs 主目录,选否
"include_btrfs_home_for_restore" : "false", // 是否在恢复时包含 Btrfs 主目录,选否
"stop_cron_emails" : "false", // 是否停止发送定时任务邮件通知
//以下部分为计划任务,建议日快照数量2,周快照数量1,
//代表每天都会进行一次快照备份但只保留两份,每周进行一次快照,且只保留一份,即上一周的快照内容
"schedule_monthly" : "false", // 是否启用每月快照,按需
"schedule_weekly" : "true", // 是否启用每周快照,按需
"schedule_daily" : "true", // 是否启用每日快照,按需
"schedule_hourly" : "false", // 是否启用每小时快照,按需
"schedule_boot" : "false", // 是否启用每次启动时创建快照,按需
"count_monthly" : "0", // 每月保留的快照数量
"count_weekly" : "1", // 每周保留的快照数量
"count_daily" : "2", // 每日保留的快照数量
"count_hourly" : "0", // 每小时保留的快照数量
"count_boot" : "0", // 每次启动时保留的快照数量
"snapshot_size" : "18899612440", // 快照占用的空间大小(字节),未运行将不显示
"snapshot_count" : "217396", // 已创建的快照总数,未运行将不显示
"date_format" : "%Y-%m-%d %H:%M:%S", // 快照日期格式
// 排除的路径列表,此处为重点,因为nas系统会存在多处路径引用,如果不进行设置将会导致对阵列进行备份!!!
"exclude" : [
"/vol1/**", //存储空间1,请注意存储空间有几个就得排除几个
"/vol2/**", //存储空间2,同上,请自行按实际情况添加
"/vol00/**", //外接设备
"/vol01/**", //远程挂载
"/vol02/**", //远程挂载
"/media/**", //理解为挂载点即可
"/var/lib/libvirt/**", //忘了~~
"/share/**", //链接存储池
"/fs/**", //链接存储池
//以上为排除路径,以下为包含路径,
"+ /dev/**" // 包含的路径(例外)
//由于我安装了gnome桌面环境,故需要将备份用户配置,纯nas玩家不需要设置
"+ /root/**", // 包含的路径(例外),
"+ /home/cly666/**", // 包含的路径(例外)
"+ /home/cming/**", // 包含的路径(例外)
"+ /home/cyb666/**", // 包含的路径(例外)
],
"exclude-apps" : [] // 排除的应用程序列表,如果不知道自己在做什么不建议填写
}
以上是对我现有配置文件的一个介绍,稍后使用时我们对它进行精简
2. 创建配置文件
Timeshift配置文件的默认存放位置位于/etc/timeshift下,直接创建它
sudo nano /etc/timeshift/timeshift.json
输入如下内容,请注意此处删除了uuid部分的内容,因为Timeshift会提供列表供我们选择存储设备并自动生成
{
"backup_device_uuid" : "",
"do_first_run" : "false",
"btrfs_mode" : "false",
"include_btrfs_home_for_backup" : "false",
"include_btrfs_home_for_restore" : "false",
"stop_cron_emails" : "false",
"schedule_monthly" : "false",
"schedule_weekly" : "true",
"schedule_daily" : "false",
"schedule_hourly" : "false",
"schedule_boot" : "false",
"count_monthly" : "0",
"count_weekly" : "2",
"count_daily" : "2",
"count_hourly" : "0",
"count_boot" : "0",
"date_format" : "%Y-%m-%d %H:%M:%S",
"exclude" : [
"/media/**",
"/vol1/**",
"/vol00/**",
"/vol01/**",
"/vol2/**",
"/vol02/**",
"/share/**",
"/fs/**"
],
"exclude-apps" : []
}
随后按Ctrl+O(回车)进行保存,Ctrl+X退出!
保存完成后,使用以下命令检查配置文件的可用性并进行首次备份:
sudo timeshift --check
执行后会列出当前识别的分区,请按提示选择系统分区所对应的序号,此处需要选择阵列而非lvm子卷,故选1回车确认;确认后会自动进行备份,最终可能出现一个json文件无法删除的错误,忽略即可至此,我们已经完成了Timeshift的安装、配置及首次备份工作。
现在我们再次查看timeshift.json配置文件会发现,Timeshift已经自动填写了uuid
由于Timeshift指定的是设备uuid,故我们的备份文件会存放到存储空间的根目录,在飞牛网页端可以点击管理员视角,进入对应的存储空间进行查看,具体如下
需要注意,此处是在虚拟机中新建了系统进行示范,故备份出来的内容较小,随着我们的使用和软件的安装,该占用会越来越大,故如果使用的是外接盘,请务必预留足够大的空间用于备份!
(四)Timeshift各环境下的恢复
环境一:可进入ssh或连接显示器能正常进入命令行界面
此处以ssh演示,本地环境不需要进行ssh连接,其他相同
如果你只是想查看目前已经备份的版本,可以使用以下命令查看
sudo timeshift --list
如图所示,系统将展示当前的所有备份版本,且均由日期命名
如果需要使用某一个版本的备份进行恢复,可输入:
sudo timeshift --restore
随后根据列表提示,选择需要进行恢复的版本所对应的序号,并根据下列图片提示,按需进行选择确认。
确认结束后后会自动进行恢复并重启系统。此时系统将恢复到正常状态。
环境一下的恢复工作就此完成!
环境二:无法进入ssh且显示器显示无法进入系统
此处,我们删除/etc进行演示(这是Nas,千万别作死!千万别作死!千万别作死!)
可以看到目前我们无法正常进入系统,且sudo等命令已失效
这类情况的恢复比较麻烦,我们需要先准备一个live镜像,有无图界面都行,这里我准备的是debian的live镜像:debian-live-12.7.0-amd64-gnome.iso
我们需要将他写入u盘里进行启动(方法多样此处略过,ventoy亦可),启动后选择进入系统界面,找到终端(后续操作命令行界面完全相同)
- 修改软件源
sudo nano /etc/apt/sources.list
- 删除所有内容并将添加清华源,删除可以使用Ctrl+K快速删除行
deb http://**rors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
随后按Ctrl+O(回车)进行保存,Ctrl+X退出
3. 接着对软件包列表进行更新
sudo apt update
- 安装 Timeshift(回车确认即可):
sudo apt install timeshift
- 使用lsblk命令查看硬盘分区树
sudo lsblk
- 接着我们对系统进行恢复,输入如下命令:
sudo timeshift --restore --snapshot-device /你的存储空间路径 --target /你的系统路径
这里sda2是我的系统盘,trim_d15e7dce那一串是我Nas下的存储空间;
请注意,此处存储空间结尾的”-0“并非是名称中的一部分,而是一个文件夹入口,后续使用时需要将他改为“/0”,请注意 ' -0 '一定要改为 ' /0 '
接着就是愉快的确认时间,其中部分位置需要输入y进行确认,grub部分一般选否即可,我这里多删usr和grub才选是
可以看到以及开始恢复系统文件,等待其恢复完成即可(完成的图忘截了,和上面环境1的恢复差不多:lol: )
重启后可以看到已经顺利进入系统,网页端和存储空间挂载均正常!!!
总结
本文我们介绍了Timeshift的安装及主要用法,整体的安装和使用方法不算难,主要难点可能在查找硬盘以及准备live镜像上,没有ui界面也使得操作相对繁琐,但这终究也是没办法的事情,相信飞牛团队不久后会推出更好的方案来实现快照!最后,希望大家的存储空间里的资料和小姐姐拥有不炸!!!
Enjoy!!