Linux / Ubuntu 备份数据

Linux / Ubuntu 备份数据

  • 需要备份的文件
  • tar 工具
    • 备份/打包过程
    • 恢复/解包过程
  • 流程自动化
      • start_backup.sh
      • server_backup.sh

同步发布在个人笔记Linux / Ubuntu 备份数据

需要备份的文件

对于我们的 linux 服务器(当然也适用于桌面端),时常进行一次系统备份是十分有益的,类似于快照功能,可以让我们的数据与系统免于意外的发生,出了问题进行恢复即可。那么我们应该用什么工具来备份呢?又要备份些什么呢?

  • 工具
    和 Windows 平台不同,linux 备份不需要进入引导系统,直接在本系统运行时就可以。工具就使用几乎每个 linux 系统都自带的 tar 工具。
  • 目录
    最好的目标当然是全盘备份,这种备份可以用 dd 命令,但是这需要另一块硬盘或分区,不符合我们今天的情况。使用 tar 工具时,推荐备份
    • 根目录 /
      这是系统所在,建议排除 /proc /lost+found /mnt /sys/media /dev可以根据情况选择是否要备份;
    • /home
      如果 /home 分区是单独一盘的话,建议单独备份。

tar 工具

Linux tar(英文全拼:tape archive )命令用于备份文件。
tar 用于创建和解压归档文件的命令行工具,可以用来将多个文件和目录组合成一个单一的归档文件,也可以用来解压已经存在的归档文件。
今天会用到的相关参数是:

参数全称意义
-ccreat创建打包文件
-Cdictionary在指定路径解包
-xextract / get提取打包文件
-vverbose输出详细的文件列表,使用-vv指令,可以输出更加详细的文件属性,包括时间、大小、所有者、权限等。
-Pabsolute-paths使用绝对路径(tar 默认使用相对路径)
-ppreserve-permissions / same-permissions保留文件的权限
-zgzip / ungzip使用gzip工具进行压缩或者解压缩
-ffile指定打包文件的文件名
–excludeexclude排除文件或文件夹(文件夹后不可有“/”)

备份/打包过程

我是在一个位置专门新建了一个路径用来保存备份文件,你也可以在任意位置,但是注意,如果备份文件在你要备份的文件路径中,要把备份文件排除在备份路径之外。

  • 举例:如果要备份 / ,备份的结果文件在 /backup.tgz,那么就要排除掉这个文件。

首先获得 root 权限

sudo su

然后分别备份根目录和用户目录

sudo tar cvPpzf sys_backup.tgz --exclude=/home --exclude=/proc --exclude=/lost+found --exclude=/mnt --exclude=/sys /
sudo tar cvPpzf home_backup.tgz /home/user_name

这样就在当前文件夹收获两个备份文件:sys_backup.tgz、home_backup.tgz

恢复/解包过程

当有数据丢失时,如果还能进系统,那就直接在系统里恢复,如果已经不能进系统了那就用 U 盘启动进系统修复就好。

sudo su

然后分别恢复两个分区

sudo tar xvPpzf sys_backup.tgz -C /
# 创建那些没备份的文件夹
mkdir proc
mkdir lost+found
mkdir mnt
mkdir sys
mkdir /homesudo tar xvPpzf home_backup.tgz -C /home/user_name

流程自动化

最终当然是想要实现自动化的备份呀,那我们就在用来保存备份文件的文件夹,新建两个 shell 脚本

  • start_backup.sh
    这是启动备份脚本的脚本,主要任务是处理 log 文件并启动 server_backup.sh。
  • server_backup.sh
    这是备份脚本,主要是保存上一次备份的文件,并进行新一次的备份。使用 nohup 命令,使得任务在后台运行,且把输入记录到 nohup.out。

start_backup.sh

#!/bin/bashdateif [ -f "nohup.out" ];thenmv nohup.out nohup.preecho "找到上次记录 nohup.out ,并保留为 nohup.pre。"
elseecho "未找到上次记录!"
finohup bash server_backup.sh &

server_backup.sh

#!/bin/bash
echo "####################################"
date
echo "####################################"
echo ""
echo ""if [ -f "home_backup.tgz" ];thenrm home_backup.tgz.bakmv home_backup.tgz home_backup.tgz.bakecho "**********************************************"echo "保留上次 /home 备份文件为 home_backup.tgz.bak。"
elseecho "**********************************************"echo "未找到上次 /home 分区备份文件!"
fiecho "Starting Backup /home ......"
echo ""tar cvPpzf home_backup.tgz /home/user_name
echo "成功备份 /home 分区!"
echo ""
echo ""
echo ""if [ -f "sys_backup.tgz" ];thenrm sys_backup.tgz.bakmv sys_backup.tgz sys_backup.tgz.bakecho "**********************************************"echo "保留上次 / 备份文件为 sys_backup.tgz.bak。"
elseecho "**********************************************"echo "未找到上次 / 分区备份文件!"
fiecho "Starting Backup / ......"
echo ""
tar cvPpzf sys_backup.tgz --exclude=/home --exclude=/proc --exclude=/lost+found --exclude=/mnt --exclude=/sys /
echo "成功备份 / 分区!"
echo ""

备份时,使用命令:

sudo bash start_backup.sh

也可以把这个命令设定为定时任务。
由于需要自主输入 sudo 密码,就需要使用管道以及 sudo -S

参数全称意义
-Sstdin从标准输入读取密码
自动运行的命令为:
cd your_path
echo “your_password” | sudo -S bash start_backup.sh

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/6117.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CogVLM/CogAgent环境搭建推理测试

引子 对于多模态大语言模型,一直没有怎么接触。刚巧一朋友有问到这方面的问题,也就顺手调研下。智谱AI的东西一直以来,还是很不错的。ChatGLM的忠实fans,看到白嫖网站github上有他们开源的多模态CogVLM/CogAgent,那就…

C语言:文件操作(中)

片头 嗨!小伙伴们,大家好!在上一篇中,我们学习了C语言:文件操作(上),在这一篇中,我们将继续学习文件操作,准备好了吗?Ready Go ! ! ! 文件的顺序…

Linux下top命令指标说明

目录 Linux下top命令指标说明1. 概览2. CPU利用率3. 内存利用率4. 进程信息 Linux下top命令指标说明 在Linux系统中,top 命令是一个用于实时监视系统运行状态的工具。通过 top 命令,我们可以了解系统的负载情况、CPU利用率、内存使用情况以及各个进程的…

ubuntu修改/etc/resolve.conf总是被重置

ubuntu修改/etc/resolve.conf总是被重置 其实处理来很简单,根据英文提示删除/etc/resolve.conf,那是一个软链接,重新创建/etc/resolve.conf rm /etc/resolve.conf vi /etc/resolve.conf 添加nameserver 223.5.5.5

短视频素材去哪里搬运?短视频素材有哪些类型?

在这个数字化和视觉传达至关重要的时代,选择合适的视频素材对于提升视频内容的吸引力和观众参与度至关重要。无论您是一名广告制片人、社交媒体经理还是独立视频制作者,以下这些精选的视频素材网站将为您提供从高清视频到特效资源的全面支持,…

【Qt】Qt输出多页pdf

Qt输出多页 pdf 2. 代码 QFile pdfFile("./tmp.pdf");pdfFile.open(QIODevice::WriteOnly);QPdfWriter *pPdfWriter new QPdfWriter(&pdfFile);pPdfWriter->setResolution(300);pPdfWriter->setPageSize(QPageSize(QPageSize::A4));pPdfWriter->setPag…

7.k8s中的名称空间namespace

目录 一、Namespace(命名空间) 二、查看系统的名称空间 1.查看系统中的名称空间列表 2.单独查看一个名称空间下的对应资源 三、名称空间的管理 1.创建名称空间 1.1响应式创建 1.2声明式创建 2.删除名称空间 四、资源引用名称空间 一、Namespace(命名空间) 命名空间(Name…

深入解析算法效率核心:时间与空间复杂度概览及优化策略

算法复杂度,即时间复杂度与空间复杂度,衡量算法运行时资源消耗。时间复杂度反映执行时间随数据规模增长的关系,空间复杂度表明额外内存需求。优化策略,如选择合适数据结构、算法改进、循环展开等,对于提升程序效率、减…

如何用 Redis 实现延迟队列?

延迟队列是一种常见的消息队列模式,用于处理需要延迟执行的任务或消息。Redis 是一种快速、开源的键值对存储数据库,具有高性能、持久性和丰富的数据结构,因此很适合用于实现延迟队列。在这篇文章中,我们将详细讨论如何使用 Redis…

树莓派控制步进电机(下):软件编程

目录 说明 软件编程 树莓派的RPI编程 基本测试程序 参考文献 说明 在上一篇博文中我们介绍了树莓派控制步进电机所需要的硬件连接,本篇博文主要介绍软件编程。这里我们使用的是树莓派4B开发板,步进电机为6线两相步进电机,驱动器采用的是…

TypeScript 的 interface

在TypeScript(TS)中,interface 是一个非常核心的概念,用于定义类型结构。它帮助开发者为对象、函数参数或者返回值等设定一种结构化的类型规范。接口允许你定义一个蓝图,描述一个对象应该具有的形状(属性和…

【More Effective C++】条款25:将构造函数和非成员函数虚拟化

构造函数虚化: NewsLetter构造函数,能根据不同数据建立不同类型的对象,行为与构造函数相似; class NLComponent {}; class TextBlock: public NLComponent {}; class Graphic: public NLComponent {}; class NewsLetter { publi…

Telegram电报+86手机接收验证码及账号解封方法

Telegram电报86手机无法接受验证码目前可用Telegram X获取,测试可用。获取验证码的前提是需要确保网络通畅 不要同一时段获取超过太多验证码,获取过多验证码将会很长一段时间收不到验证码,6小时最多获取2次验证码。 方法1:使用官…

HTML_CSS学习:背景、鼠标相关属性

一、背景相关属性 相关代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>背景相关属性</title><style>body{background-color: greenyellow;}div{width: 400px;height: …

Java 基础面试 -- 异常处理

一、引言 在Java编程中&#xff0c;异常处理是确保程序稳定性和健壮性的重要机制。当程序在运行时遇到不可预见的问题&#xff0c;如文件读取失败、网络错误、除零异常等&#xff0c;异常处理机制允许我们捕获这些错误&#xff0c;并进行相应的处理&#xff0c;从而避免程序崩…

[实例] Unity Shader 利用顶点着色器模拟简单水波

我们都知道顶点着色器可以用来改变模型各个顶点的位置&#xff0c;那么本篇我们就利用顶点着色器来做一个模拟简单水波的应用。 1. 简谐运动 在进行模拟水波之前&#xff0c;我们需要了解简谐运动&#xff08;Simple Harmonic Motion&#xff09;公式&#xff1a; 其中&#…

A5资源网有哪些类型的资源可以下载?

A5资源网提供了广泛的资源下载&#xff0c;包括但不限于以下类型&#xff1a; 设计素材&#xff1a;包括各类图标、矢量图、背景素材、UI界面元素等&#xff0c;适用于网页设计、平面设计等领域。 图片素材&#xff1a;提供高质量的照片、插图、摄影作品等&#xff0c;可用于…

Java里面的方法引用

Java里面的方法引用 方法引用 引用处必须是函数式接口 :: 方法引用符 被引用的地方必须已经存在 被引用方法的形参和返回值需要和抽象方法保持一致 被引用方法的功能要满足当前需求 引用静态方法 类名::静态方法 引用成员方法 对象::成员方法 this::成员方法 super::成…

【文献阅读】 The ITS Irregular Terrain Model(Longely-Rice模型)海上电波传播模型

前言 因为最近在做海上通信的一个项目&#xff0c;所以需要对海上的信道进行建模&#xff0c;所以才阅读到了这一篇文献&#xff0c;下面的内容大部分是我的个人理解&#xff0c;如有错误&#xff0c;请见谅。欢迎在评论区和我一起讨论。 Longely-Rice模型介绍 频率介于 20 …

leetcode刷题记录—二分

1 二分 33. 搜索旋转排序数组 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], ..., num…