IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Timeshift备份和还原linux系统 -> 正文阅读

[系统运维]Timeshift备份和还原linux系统

Timeshift备份和还原linux系统

背景

某一个客户非要实现可以一键备份和还原系统(ubuntu18.04);因此就网上搜了下有没有这样的资源可以借鉴,看了很多文章,发现大家都是在桌面版系统操作的,而实际的服务器哪有人用桌面版呀,于是自己研究了下如何命令行去备份和还原系统,以这篇文章记录一下。

Timeshift介绍

Timeshift,是Linux下的是一款自由开源工具,可让你创建文件系统的增量快照。你可以使用 RSYNC 或 BTRFS 两种方式创建快照。这里这个快照其实和虚拟机的快照差不多,说白了这个软件就是为我们实体机创建了一份专属于我们实体机的快照,可以方便我们后期进入系统使用这个快照进行还原操作。

Timeshift安装与卸载

在终端执行如下命令安装

sudo add-apt-repository -y ppa:teejee2008/timeshift
sudo apt-get update
sudo apt-get install timeshift

如需卸载,执行下面命令

sudo apt-get remove timeshift

快照存储

这里需要了解下timeshift备份的两种方式,一种是btrfs,一种是rsync。

rsync 在第一次使用时会拷贝所有文件,以后每次备份都是增量备份,使用硬链接创建从上一次快照未修改的系统文件。快照文件可以保存到任何 Linux 文件系统的硬盘格式下,保存快照到非系统盘或者外部硬盘上,这样即使系统盘损坏或者被格式化也能够快速从外部硬盘恢复数据。rsync 支持排除文件和目录来节省硬盘空间,rsync也是默认的备份方式。

btrfs 需要安装 btrfs-tools,快照通过 btrfs文件系统创建,快照备份和恢复的速度要比 rsync 快,快照创建和恢复都是原子事务的,不能中断。快照通过替换系统 subvolumns 来恢复,因为文件没有拷贝,删除或者覆盖,不会有文件丢失的风险。恢复后的系统会作为一次新的快照。快照在备份时是完美地逐字节拷贝,不能排除任何文件。快照会存在系统相同的硬盘上,暂时还不支持备份到其他硬盘,如果系统盘损坏,那么快照也会丢失。初始 btrfs 备份是 0 字节,但是随着系统使用占用内容会逐日增多,快照中的文件依然还是会指向原始的文件 block. 系统必须安装在 btrfs 分区上,并使用 Ubuntu-type subvolumn layout(@ and @home subvolumns),其他的 layouts 不支持。

通过了解以上两种方式,可以知道rsync的快照可以保存到任何的非系统盘下,而btrfs是存储在系统盘上;本人建议使用rsync的方式,本次备份和恢复也是这种方式。

准备工作

本次存储快照是采用装系统时,系统盘预留20G空间用于存储(有条件的可以装一块盘用于存储),进入系统后需要先分区

fdisk /dev/nvme0n1  #分区
lsblk  #查看分区
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
nvme0n1     259:0    0 232.9G  0 disk
├─nvme0n1p1 259:1    0   512M  0 part /boot/efi
├─nvme0n1p2 259:2    0   212G  0 part /
└─nvme0n1p3 259:3    0    20G  0 part     #用于存储快照
mkfs.ext4 /dev/nvme0n1p3   #格式化设备
##升级系统内核到4.15.0-188-generic或更高内核版本
udo apt -y update && \
sudo apt-get install linux-image-4.15.0-188-generic  && \
sudo apt-get install linux-headers-4.15.0-188-generic -y   && \
sudo apt-get install linux-modules-4.15.0-188-generic -y   && \
sudo apt-get install linux-modules-extra-4.15.0-188-generic -y && \
sudo reboot
##更新所有软件到最新
apt upgrade -y

Tips:升级系统内核和更新所有软件大家可根据自己实际情况选择做不做,我在ubuntu18.04系统中做快照时,这两步没做恢复快照时是会一直卡住不动的,所以建议这两步做下。

创建快照

timeshift --create --snapshot-device /dev/nvme0n1p3

查看快照

timeshift --list
Mounted '/dev/nvme0n1p3' at '/run/timeshift/23058/backup'
Device : /dev/nvme0n1p3
UUID   : 150ecac5-a890-43d0-bcf6-4aecc80ab467
Path   : /run/timeshift/23058/backup
Mode   : RSYNC
Status : OK
1 snapshots, 17.3 GB free

Num     Name                 Tags  Description
------------------------------------------------------------------------------
0    >  2022-07-11_03-19-57  O


Found stale mount for device '/dev/nvme0n1p3' at path '/run/timeshift/23058/backup'
Unmounted successfully

恢复快照

#恢复快照是交互式的,不想交互可以利用参数去实现
#交互式
timeshift --restore --snapshot '2022-07-11_03-19-57' --snapshot-device /dev/nvme0n1p3 
#非交互式
timeshift --restore --snapshot '2022-07-11_03-19-57' --snapshot-device /dev/nvme0n1p3 --yes --skip-grub /dev/nvme0n1p3

删除快照

#删除指定快照
timeshift --delete  --snapshot '2022-07-11_03-19-57'
#删除所有快照
timeshift --delete-all

配置文件详解

cat /etc/timeshift/timeshift.json
{
  "backup_device_uuid" : "150ecac5-a890-43d0-bcf6-4aecc80ab467",  #存储设备uuid
  "parent_device_uuid" : "",
  "do_first_run" : "false",
  "btrfs_mode" : "false",
  "include_btrfs_home_for_backup" : "false",
  "include_btrfs_home_for_restore" : "false",
  "stop_cron_emails" : "true",
  "schedule_monthly" : "false",
  "schedule_weekly" : "false",
  "schedule_daily" : "false",
  "schedule_hourly" : "false",
  "schedule_boot" : "false",
  "count_monthly" : "2",
  "count_weekly" : "3",
  "count_daily" : "5",
  "count_hourly" : "6",
  "count_boot" : "5",
  "snapshot_size" : "11986884489",    #快照大小(单位为字节),会以第一次创建快照的大小配置,如果后面备份快照大小超过改值,会备份失败;可以提前修改改值后再进行备份。
  "snapshot_count" : "152137",
  "date_format" : "%Y-%m-%d %H:%M:%S",
  "exclude" : [        #这里是重点,默认这里是空的,即root家目录和其他用户的家目录不会备份,想要备份就是以下方式配置
    "+ /root/***",      
    "+ /home/abm/***"
  ],
  "exclude-apps" : [
  ]
}

参考文章:
https://www.jianshu.com/p/3841c272c68e
https://github.com/teejee2008/timeshift
https://guyuehome.com/34859

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 17:01:55  更:2022-07-17 17:04:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 20:28:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码