实验环境 Study Area CN

备份

概念

备份是计算机使用中非常重要的操作。原则上来说,进行任何重大修改(例如更新系统、更新生产环境中的软件)之前都需要备份。

本章节主要让你对备份这一概念有所了解,等到讲解服务器配置及使用的时候我们再详细学习。

按照备份的范围来分,常用的备份方式有以下几种:

  • 全量备份:将存储介质中的所有文件一次性完整复制到其他介质上。
  • 增量备份:对上一次备份后的数据修改部分进行备份。
  • 差异备份:在完整备份之后,备份中与当前数据有差异的部分。
  • 选择性备份:仅对系统中的一部分进行备份。

按照备份的时间来分,常用的备份方式分为以下两种:

  • 计划性备份:例如每周备份一次、每天备份一次等。
  • 操作前备份:在重大操作前备份,以便在操作后出现问题时可以快速回滚,减少损失。

有人可能会说:“我们自己用电脑,备份有什么意义呢?” 2017年,勒索病毒 WannaCry 的爆发,为我们敲响了警钟。该病毒使用 AES 加密用户电脑上的所有文件,以勒索钱财。没有人知道,下一个被勒索的,究竟是不是自己。我们只能通过备份将损失降到最低。

备份软件

在 Linux 下,常用的备份工具有以下几种:

  • dd:直接克隆整个分区。
  • tar:将需要备份的文件打包压缩。
  • rsync:可以进行增量备份、全量备份以及将备份传输到远程。

dd 命令

本小节的内容,了解即可。

备份整块 sda 硬盘到 sdb 只需要以下命令:

dd if=/dev/sda of=/dev/sdb

注意!这里的 sdb 物理容量必须大于 sda!并且 sdb 上所有的文件都会被覆盖!无法找回!

tar 命令

在 Linux 中,可以直接使用 tar 打包需要的文件,例如备份 /etc

cd /
sudo tar -zcvf etc_backup.gz etc

rsync 命令

在之前的章节中,我们创建了一个新的虚拟磁盘。现在,让我们挂载它到 /mnt/backup 进行备份。

如果你完成了之前的课后作业,那么 sdb 上应该有唯一的一个 xfs 分区占满了整个磁盘。如果你已经持久挂载了磁盘,本步骤可以跳过。

sudo mkdir /mnt/backup
sudo mount /dev/sdb1 /mnt/backup

现在,我们使用 rsync 命令,将虚拟磁盘中的文件复制到新的虚拟磁盘上。

sudo rsync -avz /etc /mnt/backup/etc

rsync 命令的参数如下:

  • -a:递归模式,表示以递归方式传输文件,并保持所有文件属性。
  • -v:显示详细输出。
  • -z:压缩传输的数据。
  • /etc:源文件。
  • /mnt/backup/etc:目标文件。

rsync 命令会自动判断源文件和目标文件是否相同,如果相同,则不会进行复制。如果不同,则会复制不同的文件。

rsync 命令是一个非常强大的命令,它不仅可以进行文件复制,还可以联网进行文件的同步、文件的删除等操作。如果你需要备份大量的文件,那么 rsync 命令是一个非常好的选择。


study-area-cn