From d6361049771ed7c5042a9f737c94ede57c7f64dc Mon Sep 17 00:00:00 2001 From: hmtsai Date: Thu, 29 Aug 2024 11:44:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=A4=87=E4=BB=BD=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/file_and_path/backup.md | 85 +++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 src/file_and_path/backup.md diff --git a/src/file_and_path/backup.md b/src/file_and_path/backup.md new file mode 100644 index 0000000..c47deb7 --- /dev/null +++ b/src/file_and_path/backup.md @@ -0,0 +1,85 @@ +# 备份 + +## 概念 + +备份是计算机使用中非常重要的操作。原则上来说,进行任何重大修改(比如更新系统、更新生产环境中的软件。)之前都需要备份。 + +按照备份的范围来分,常用的备份方式有以下几种: + +- 全量备份:指把硬盘等存储介质中的所有文件**一次性完整复制**到其他介质上。 +- 增量备份:对上一次备份后的数据后修改的数据进行备份。 +- 差异备份:在完整备份之后,修改备份中与当前数据有差别的数据。 +- 选择性备份:仅对系统中的一部分进行备份。 + +按照备份的时间来分,常用的备份方式分为以下两种: + +- 计划性备份:比如一周一备份、一天一备份等。 +- 操作前备份:在重大操作前备份,以便在操作后出现问题时可以快速回滚,减少损失。 + +> 有的人可能会说:“我们自己用电脑,备份有什么意义呢?” 2017年,勒索病毒WannaCry的肆虐,为我们敲响了警钟。这个病毒用AES加密用户电脑上的所有文件,以勒索钱财。没有人知道,下一个被勒索的,究竟是不是自己,我们只能通过备份将损失降到最低。 + +## 备份软件 + +Linux下,常用的备份工具有以下几种: + +- dd:直接克隆整个分区。 +- tar:将需要备份的文件打包压缩。 +- rsync:可以进行增量备份、全量备份以及可以将备份传输到远程。 + +### `dd`命令 + +> 这个小节的内容,了解即可。 + +`dd`是一个比较简单的命令,它的功能也很简单,就是读入然后写出。 + +进行备份所需要了解的参数只有下面几个: + +- `if=`:输入的文件名。 +- `of=`:输出的文件名。 + +备份整块`sda`硬盘到`sdb`只需要以下命令。 + +```sh +dd if=/dev/sda of=/dev/sda +``` + +> 注意!这里的sdb物理容量必须大于sda!并且sdb上所有的文件都会被覆盖!**无法找回!** + +### `tar`命令 + +Linux中,可以直接使用`tar`打包需要的文件,比如备份`/etc`: + +```sh +cd / +sudo tar -zcvf etc_backup.gz etc +``` + +## `rsync`命令 + +在之前的章节中,我们创建了一个新的虚拟磁盘。现在,让我们挂载它到`/backup`进行备份。 + +```sh +sudo mkdir /backup +sudo mount /dev/sdb1 /backup +sudo mkdir /backup/etc +``` + +> 如果你完成了所有的课后作业,那么sdb上应该有唯一的一个xfs分区占满了整个磁盘。 + +现在,我们使用`rsync`命令,将虚拟磁盘中的文件复制到新的虚拟磁盘上。 + +```sh +sudo rsync -avz /etc /backup/etc +``` + +`rsync`命令的参数如下: + +- `-a`:递归模式,表示以递归方式传输文件,并保持所有文件属性。 +- `-v`:显示详细输出。 +- `-z`:压缩传输的数据。 +- `/etc`:源文件。 +- `/backup/etc`:目标文件。 + +`rsync`命令会自动判断源文件和目标文件是否相同,如果相同,则不会进行复制。如果不同,则会复制不同的文件。 + +> `rsync`命令是一个非常强大的命令,它不仅可以进行文件复制,还可以进行文件的同步、文件的删除等操作。如果你需要备份大量的文件,那么`rsync`命令是一个非常好的选择。