24、数据备份全攻略:从恢复到光盘存储

数据备份全攻略:从恢复到光盘存储

1. 恢复丢失或损坏的文件

在数据备份中,恢复丢失的文件至关重要。一个有效的备份系统不仅要在灾难发生时随时可用,还需对恢复计划进行测试,确保在最需要时能正常工作。

以下是一个用于恢复文件的脚本:

#!/bin/bash
dest=server1
user=$(whoami)
cd || exit 1
for file in "$@" ; do
    rsync -aHPvz "${user}@${dest}:./${file}" "./${file}"
done

使用方法很简单,只需在命令行中运行该脚本,并将需要恢复的文件名作为参数传递。例如:

amy@desk12:~$ rm sales-plan-2006-10.sxw
amy@desk12:~$ ./backrestore sales-plan-2006-10.sxw
Password:
receiving file list ...
1 file to consider
sales-plan-2006-10.sxw
       41285 100%    6.56MB/s    0:00:00  (1, 100.0% of 1)
sent 42 bytes  received 39299 bytes  6052.46 bytes/sec
total size is 41285  speedup is 1.05
amy@desk12:~$

若要一次性恢复所有文件,可使用点号( . )作为文件名。

2. 自动化备份

可以使用类似上述脚本的方式,将其作为 cron 作业来实现自动化备份。不过,由于 SSH 需要输入用户密码,为了在用户不在场时(如凌晨 3 点)也能正常登录 SSH,需要将用户的公钥添加到 SSH 配置中。

创建备份有多种选择:
- 可以在服务器上每天或每周运行 cron 作业脚本,将数据备份到另一台服务器。
- 有远程办公室的企业可以通过互联网定期备份这些办公室的数据。
- 还可以将备份数据刻录到 CD - R、DVD 或磁带上,制作可异地存储的长期存档副本。

3. tar 归档文件

tar 命令可从一个或多个指定的文件或目录创建归档文件,也能列出归档内容或从中提取文件和目录。tar 归档文件也称为 tarfile 或 tarball。

与单独的文件目录相比,tar 归档文件有诸多优势:
- 使通过电子邮件发送整个目录变得更加容易。
- 对于包含大量相似文件的目录,对单个文件中的所有数据进行压缩时,压缩效率更高。

常见用途是辅助免费或开源软件的源程序文件分发。多数情况下,tar 归档文件会使用 gzip bzip2 程序进行压缩。但如果要归档的所有文件已经是压缩格式(如音频、视频和 OpenOffice.org 文件),对归档文件本身进行压缩的效果不大。

常见的 tar 文件扩展名及含义如下:
| 扩展名 | 含义 |
| ---- | ---- |
| .tar | 未压缩的 tar 归档文件 |
| .tar.gz .tgz | 使用 gzip 压缩程序压缩的 tar 归档文件 |
| .tar.bz2 .tbz | 使用 bzip2 压缩程序压缩的 tar 归档文件 |

tar 命令的语法为: tar options arguments ,常用选项如下:
| 选项 | 含义 |
| ---- | ---- |
| -b | 指定块大小(默认单位为 512 字节) |
| -c | 创建(写入)新的归档文件 |
| -f filename | 从归档文件名读取或写入。如果省略文件名或为 - ,则将归档文件写入标准输出或从标准输入读取 |
| -j | 使用 bzip2 bunzip2 压缩或解压缩归档文件。使用 bzip2 压缩的归档文件通常有 .bz2 后缀 |
| -p | 保留文件权限 |
| -t | 列出现有归档文件中的文件 |
| -v | 创建或解包归档文件时,列出内容。与 -t 选项一起使用时,提供列出文件的更多详细信息 |
| -x | 从现有归档文件中提取(读取)文件 |
| -z | 使用 gzip gunzip 压缩或解压缩归档文件。使用 gzip 压缩的归档文件通常有 .gz 后缀 |

3.1 创建新的归档文件

以下是一些归档 work - docs 目录的典型命令:
- 创建未压缩的归档文件 work - docs.tar

$ tar -cf work-docs.tar work-docs
  • 创建使用 gzip 压缩的归档文件 work - docs.tar.gz
$ tar -czf work-docs.tar.gz work-docs
  • 创建使用 bzip2 压缩的归档文件 work - docs.tar.bz2
$ tar -cjf work-docs.tar.bz2 work-docs
3.2 从归档文件中提取文件

在提取归档文件之前,应先列出并查看其内容,避免意外覆盖系统中的现有文件或造成文件混乱。通常,最好在计算机上创建一个新目录来提取 tar 归档文件,这样可以将提取的文件与其他文件分开,防止覆盖现有文件。

以下是一些示例命令:
- 列出 collection.tar 归档文件中的文件:

$ tar -tf collection.tar
  • 详细列出 collection.tar.bz2 归档文件中的文件:
$ tar -tvjf collection.tar.bz2
  • 提取 collection.tar 归档文件中的文件到当前目录,并保留原始权限:
$ tar -xpf collection.tar
  • 提取 collection.tar.gz 归档文件中的文件到当前目录,并保留原始权限:
$ tar -xpzf collection.tar.gz
  • 提取 collection.tar.bz2 归档文件中的文件到当前目录,并保留原始权限:
$ tar -xpjf collection.tar.bz2
  • 列出并提取 collection.tar.bz2 归档文件中的文件到当前目录,并保留原始权限:
$ tar -xpvjf collection.tar.bz2
3.3 完整的打包和解包示例

以下是一个完整的 shell 会话,展示了如何创建、列出和提取 tar 归档文件:

amy@desk12:~$ ls -dl monthly-reports
drwxr-xr-x  2 amy amy 4096 2006-08-11 14:15 monthly-reports 
amy@desk12:~$ ls -l monthly-reports
total 228
-rw-r--r--  1 amy amy 50552 2006-05-09 11:09 mr-2006-04.sxw
-rw-r--r--  1 amy amy 51284 2006-06-06 15:44 mr-2006-05.sxw
-rw-r--r--  1 amy amy 51428 2006-07-06 14:30 mr-2006-06.sxw
-rw-r--r--  1 amy amy 54667 2006-08-07 10:06 mr-2006-07.sxw
amy@desk12:~$ tar -czf monthly-reports-aug.tar.gz monthly-reports
amy@desk12:~$ ls -l monthly-reports-aug.tar.gz
-rw-r--r--  1 amy amy 199015 2006-08-14 12:46 monthly-reports-aug.tar.gz
amy@desk12:~$ tar -tzf monthly-reports-aug.tar.gz
monthly-reports/
monthly-reports/mr-2006-04.sxw
monthly-reports/mr-2006-05.sxw
monthly-reports/mr-2006-06.sxw
monthly-reports/mr-2006-07.sxw
amy@desk12:~$ tar -tvzf monthly-reports-aug.tar.gz
drwxr-xr-x amy/amy           0 2006-08-11 14:15:12 monthly-reports/
-rw-r--r-- amy/amy       50552 2006-05-09 11:09:12 monthly-reports/mr-2006-04.sxw
-rw-r--r-- amy/amy       51284 2006-06-06 15:44:33 monthly-reports/mr-2006-05.sxw
-rw-r--r-- amy/amy       51428 2006-07-06 14:30:19 monthly-reports/mr-2006-06.sxw
-rw-r--r-- amy/amy       54667 2006-08-07 10:06:57 monthly-reports/mr-2006-07.sxw
amy@desk12:~$ mkdir extract.dir
amy@desk12:~$ cd extract.dir
amy@desk12:~/extract.dir$ tar -xzf ../monthly-reports-aug.tar.gz
amy@desk12:~/extract.dir$ tar -xvzf ../monthly-reports-aug.tar.gz
monthly-reports/
monthly-reports/mr-2006-04.sxw
monthly-reports/mr-2006-05.sxw
monthly-reports/mr-2006-06.sxw
monthly-reports/mr-2006-07.sxw
amy@desk12:~/extract.dir$ tar -xvvzf ../monthly-reports-aug.tar.gz
drwxr-xr-x amy/amy           0 2006-08-11 14:15:12 monthly-reports/
-rw-r--r-- amy/amy       50552 2006-05-09 11:09:12 monthly-reports/mr-2006-04.sxw
-rw-r--r-- amy/amy       51284 2006-06-06 15:44:33 monthly-reports/mr-2006-05.sxw
-rw-r--r-- amy/amy       51428 2006-07-06 14:30:19 monthly-reports/mr-2006-06.sxw
-rw-r--r-- amy/amy       54667 2006-08-07 10:06:57 monthly-reports/mr-2006-07.sxw
amy@desk12:~/extract.dir$ cd
amy@desk12:~$
4. 在光盘介质上保存文件

可记录的 CD 和 DVD 介质(如 CD - R、DVD - R 和 DVD + R)能以方便、紧凑的形式保存文件,可用于异地存储备份,也可向用户或客户分发软件或数据。CD - R 可容纳 700 MB 以上的数据,DVD - R 或 DVD + R 可容纳 4.7 GB 以上的数据,还有容量为 8.55 GB 的双层 DVD + R。

4.1 访问 CD - R 驱动器

Linux 通过 ide - scsi 驱动程序支持在 IDE ATAPI CD - R 驱动器上进行刻录。大多数 Linux 发行版的内核中包含此驱动程序。若系统没有该驱动程序,需要加载驱动模块(必要时进行安装),或者可能需要重新编译内核。

使用以下命令列出系统上的 SCSI 设备,以找到 CD - R 驱动器的模拟 SCSI 设备编号:

# cdrecord -scanbus

输出结果示例如下:

Cdrecord-Clone 2.01 (i686-pc-linux-gnu) Copyright (C) 1995-2004 Jörg Schilling
scsidev: 'ATA'
devname: 'ATA'
scsibus: -2 target: -2 lun: -2
Linux sg driver version: 3.5.27
Using libscg version 'schily-0.8'.
scsibus1:
        1,0,0   100) 'SONY    ' 'CD-RW  CRX195E1 ' 'ZYS5' Removable CD-ROM
        1,1,0   101) 'DVD-16X ' 'DVD-ROM BDV316E ' '0052' Removable CD-ROM
        1,2,0   102) *
        1,3,0   103) *
        1,4,0   104) *
        1,5,0   105) *
        1,6,0   106) *
        1,7,0   107) *

ide - scsi 驱动程序未安装或未激活,可能会得到如下输出:

Cdrecord-Clone 2.01 (i686-pc-linux-gnu) Copyright (C) 1995-2004 Jörg Schilling
cdrecord: No such file or directory. Cannot open '/dev/pg*'. Cannot open SCSI driver.
cdrecord: For possible targets try 'cdrecord -scanbus'.
cdrecord: For possible transport specifiers try 'cdrecord dev=help'.
cdrecord:
cdrecord: For more information, install the cdrtools-doc
cdrecord: package and read /usr/share/doc/cdrecord/README.ATAPI.setup .

遇到这种情况,需要在实际刻录之前激活 ide - scsi 驱动程序。

4.2 设置默认值

可以配置多个 cdrecord 参数,例如配置 cdrecord 识别刻录设备的名称,指定默认设备。配置步骤如下:
1. 以 root 用户登录(或使用 su - 切换到 root 用户)。
2. 使用编辑器创建文本文件:

# vi /etc/default/cdrecord
  1. 根据 cdrecord - scanbus 输出的设备信息,在文件中添加以下内容(需根据自己的设备信息修改):
CDR_DEVICE=cd
cd=1,0,0        -1        -1        ""
dvd=1,1,0       -1        -1       ""

如果 Linux 内核是 2.6 版本,由于驱动程序重新设计,可能需要在设备前加上 ATA: 前缀,配置文件可能如下:

CDR_DEVICE=cd
cd=ATA:1,0,0    -1        -1        ""
dvd=ATA:1,1,0   -1        -1        ""

还可以在设备编号后设置每个设备的默认刻录速度, -1 表示使用默认值。下一个数字是 FIFO 缓冲区大小,同样 -1 指定 Linux 系统上的默认值。行中的最后一项允许传递特定于驱动程序的选项,这里留空。较新的 cdrecord 版本支持 driveropts = burnfree 选项,以防止缓冲区欠载。

4.3 准备要刻录到 CD - R 的文件

mkisofs 命令用于创建 ISO 文件系统映像文件,该文件应包含要刻录到 CD - R 的所有文件。常用选项如下:
| 选项 | 含义 |
| ---- | ---- |
| -J | 包含 Joliet 名称以实现 Windows 兼容性 |
| -r | 包含 Rock Ridge 名称以实现 Unix/Linux 兼容性 |
| -v | 设置详细模式以显示进度状态 |
| -V id_string | 指定要创建的光盘的卷 ID |
| -o filename | 指定要创建的 ISO 映像的文件名 |

示例命令,将指定目录中的所有文件包含在 ISO 映像中:

# mkisofs -JrvV "disc name" -o backup.iso /home/amy

该命令会有大量输出,对于大型文件集合,输出有助于估计剩余时间。如果不想看到这些输出,可省略 -v 选项。

4.4 刻录 CD - R

使用创建好的 ISO 映像刻录 CD - R,步骤如下:
1. 以 root 用户登录(或使用 su - 切换到 root 用户),因为 cdrecord 程序需要 root 权限才能访问原始 SCSI 层、修改进程优先级以及将缓冲区空间锁定到 RAM 中以避免交换。
2. 如果使用的是 CD - RW 驱动器中的可重写 CD - RW 光盘,在刻录前需要擦除(清空)光盘:

# cdrecord blank=fast padsize=63s -pad -dao -v -eject

部分驱动器需要弹出介质以重置驱动器进行下一次操作,除非确定驱动器不需要此操作,否则应使用 -eject 选项。
3. 刻录上一步创建的 ISO 映像:

# cdrecord padsize=63 -pad -dao -v -eject backup.iso

在刻录 CD 或 DVD 时,应避免在计算机上进行其他工作。一些现代驱动器具有 burnfree 等特殊功能,可在计算机运行速度不够快时避免问题,但使用这些修复功能刻录的光盘可能与一些旧设备不兼容。如果发现刻录有时失败,可降低刻录速度,可通过 speed = 选项更改速度,该选项在 cdrecord 手册页中有详细说明。对于刻录网络文件系统上的映像文件,降低刻录速度尤为重要。

此外,一些 IDE ATAPI CD 读取器需要填充才能与 Linux 和其他系统通常进行的预读操作正常工作。虽然省略填充在较新的驱动器上可能可行,但由于问题出现在读取阶段,为确保旧驱动器能够读取刻录的 CD - R,应包含填充。否则,可能会发现关键备份文件在临时替换计算机上无法读取。

综上所述,数据备份和恢复是一个复杂但重要的过程,涉及到多种技术和工具。通过合理运用 rsync tar 和光盘刻录等方法,可以有效地保护数据的安全和可用性。

数据备份全攻略:从恢复到光盘存储(续)

5. 总结与注意事项

在数据备份和恢复的过程中,我们使用了多种工具和方法,每个环节都有其重要性和需要注意的地方。下面是对前面内容的总结以及一些额外的注意事项。

5.1 恢复丢失或损坏文件总结
  • 脚本使用 :使用自定义的恢复脚本可以方便地从服务器恢复单个或所有文件。脚本如下:
#!/bin/bash
dest=server1
user=$(whoami)
cd || exit 1
for file in "$@" ; do
    rsync -aHPvz "${user}@${dest}:./${file}" "./${file}"
done
  • 自动化备份 :通过 cron 作业实现自动化备份时,要确保 SSH 配置中包含用户的公钥,以实现无密码登录。不同的备份场景(如远程办公室、长期存档)可以选择不同的备份方式。
5.2 tar 归档总结
  • 优势 :tar 归档文件便于文件传输和压缩,适用于软件分发等场景。
  • 常用选项 :记住 -c 用于创建归档文件, -x 用于提取文件,这两个选项容易混淆。常见的压缩格式有 .tar.gz .tar.bz2
  • 操作流程 :创建归档文件时使用 -c 选项,提取文件前先使用 -t 选项查看内容,提取时使用 -x 选项并可根据需要添加 -p 保留文件权限。
5.3 光盘存储总结
  • 介质选择 :CD - R、DVD - R 和 DVD + R 各有容量特点,根据数据量选择合适的介质。
  • 驱动器访问 :Linux 中使用 ide - scsi 驱动程序支持 CD - R 刻录,使用 cdrecord -scanbus 命令查找驱动器编号。
  • 配置与准备 :配置 cdrecord 参数指定默认设备和刻录速度,使用 mkisofs 命令创建 ISO 映像文件。
  • 刻录过程 :刻录时需要 root 权限,对于 CD - RW 光盘需要先擦除,注意填充和刻录速度的设置。
6. 备份流程可视化

为了更清晰地展示整个备份和恢复的流程,我们可以使用 mermaid 流程图来进行可视化。

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
    classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;

    A([开始]):::startend --> B(数据备份):::process
    B --> C{选择备份方式}:::decision
    C -->|服务器备份| D(使用 rsync 脚本):::process
    C -->|tar 归档| E(使用 tar 命令):::process
    C -->|光盘存储| F(准备光盘介质):::process
    D --> G(自动化备份配置):::process
    E --> H(选择压缩格式):::process
    F --> I(访问 CD - R 驱动器):::process
    H --> J(创建归档文件):::process
    I --> K(配置 cdrecord 参数):::process
    J --> L(存储归档文件):::process
    K --> M(使用 mkisofs 创建 ISO 映像):::process
    M --> N(刻录 CD - R):::process
    L --> O(数据恢复准备):::process
    N --> O
    O --> P{恢复方式选择}:::decision
    P -->|单个文件恢复| Q(使用恢复脚本):::process
    P -->|tar 归档恢复| R(使用 tar 提取):::process
    Q --> S([结束]):::startend
    R --> S

这个流程图展示了从数据备份到恢复的整个过程,包括不同的备份方式和恢复方式。通过这个流程图,可以更直观地理解各个步骤之间的关系。

7. 常见问题与解决方案

在进行数据备份和恢复的过程中,可能会遇到一些常见的问题,下面为大家提供相应的解决方案。

问题 解决方案
rsync 恢复时需要输入密码 确保 SSH 配置中包含用户的公钥,实现无密码登录。
tar 归档文件压缩效果不佳 检查要归档的文件是否已经是压缩格式,如果是则无需再次压缩。
cdrecord -scanbus 无法找到 CD - R 驱动器 检查 ide - scsi 驱动程序是否安装和激活,必要时加载驱动模块或重新编译内核。
刻录 CD - R 失败 检查是否有足够的权限(需要 root 权限),是否正确擦除 CD - RW 光盘,尝试降低刻录速度。
恢复文件时覆盖现有文件 在提取 tar 归档文件前,先使用 -t 选项查看内容,最好创建新目录进行提取。
8. 总结

数据备份和恢复是保障数据安全和可用性的重要手段。通过本文介绍的方法,我们可以使用 rsync 进行服务器备份,使用 tar 进行文件归档,以及使用光盘介质进行长期存储。每个步骤都有其特定的操作和注意事项,我们需要根据实际情况选择合适的备份方式和恢复方法。

同时,通过可视化流程图和常见问题解决方案,我们可以更清晰地理解整个过程,并在遇到问题时能够快速解决。希望本文能够帮助大家更好地进行数据备份和恢复工作,确保数据的安全和可靠。

内容概要:本文为《科技类企业品牌传播白皮书》,系统阐述了新闻媒体发稿、自媒体博主种草与短视频矩阵覆盖三大核心传播策略,并结合“传声港”平台的AI工具与资源整合能力,提出适配科技企业的品牌传播解决方案。文章深入分析科技企业传播的特殊性,包括受众圈层化、技术复杂性与传播通俗性的矛盾、产品生命周期影响及2024-2025年传播新趋势,强调从“技术输出”向“价值引领”的战略升级。针对三种传播方式,分别从适用场景、操作流程、效果评估、成本效益、风险防控等方面提供详尽指南,并通过平台AI能力实现资源智能匹配、内容精准投放与全链路效果追踪,最终构建“信任—种草—曝光”三位一体的传播闭环。; 适合人群:科技类企业品牌与市场负责人、公关传播从业者、数字营销管理者及初创科技公司创始人;具备一定品牌传播基础,关注效果可量化与AI工具赋能的专业人士。; 使用场景及目标:①制定科技产品全生命周期的品牌传播策略;②优化媒体发稿、KOL合作与短视频运营的资源配置与ROI;③借助AI平台实现传播内容的精准触达、效果监测与风险控制;④提升品牌在技术可信度、用户信任与市场影响力方面的综合竞争力。; 阅读建议:建议结合传声港平台的实际工具模块(如AI选媒、达人匹配、数据驾驶舱)进行对照阅读,重点关注各阶段的标准化流程与数据指标基准,将理论策略与平台实操深度融合,推动品牌传播从经验驱动转向数据与工具双驱动。
【3D应力敏感度分析拓扑优化】【基于p-范数全局应力衡量的3D敏感度分析】基于伴随方法的有限元分析和p-范数应力敏感度分析(Matlab代码实现)内容概要:本文档围绕“基于p-范数全局应力衡量的3D应力敏感度分析”展开,介绍了一种结合伴随方法与有限元分析的拓扑优化技术,重点实现了3D结构在应力约束下的敏感度分析。文中详细阐述了p-范数应力聚合方法的理论基础及其在避免局部应力过高的优势,并通过Matlab代码实现完整的数值仿真流程,涵盖有限元建模、灵敏度计算、优化迭代等关键环节,适用于复杂三维结构的轻量化与高强度设计。; 适合人群:具备有限元分析基础、拓扑优化背景及Matlab编程能力的研究生、科研人员或从事结构设计的工程技术人员,尤其适合致力于力学仿真与优化算法开发的专业人士; 使用场景及目标:①应用于航空航天、机械制造、土木工程等领域中对结构强度和重量有高要求的设计优化;②帮助读者深入理解伴随法在应力约束优化中的应用,掌握p-范数法处理全局应力约束的技术细节;③为科研复现、论文写作及工程项目提供可运行的Matlab代码参考与算法验证平台; 阅读建议:建议读者结合文中提到的优化算法原理与Matlab代码同步调试,重点关注敏感度推导与有限元实现的衔接部分,同时推荐使用提供的网盘资源获取完整代码与测试案例,以提升学习效率与实践效果。
源码来自:https://pan.quark.cn/s/e1bc39762118 SmartControlAndroidMQTT 点个Star吧~ 如果不会用下载或是下载慢的,可以在到酷安下载:https://www.coolapk.com/apk/com.zyc.zcontrol 本文档还在编写中!!! 被控设备: 按键伴侣ButtonMate 直接控制墙壁开关,在不修改墙壁开关的前提下实现智能开关的效果 zTC1_a1 斐讯排插TC1重新开发固件,仅支持a1版本. zDC1 斐讯排插DC1重新开发固件. zA1 斐讯空气净化器悟净A1重新开发固件. zM1 斐讯空气检测仪悟空M1重新开发固件. zS7 斐讯体重秤S7重新开发固件.(仅支持体重,不支持体脂) zClock时钟 基于esp8266的数码管时钟 zMOPS插座 基于MOPS插座开发固件 RGBW灯 基于ESP8266的rgbw灯泡 zClock点阵时钟 基于ESP8266的点阵时钟 使用说明 此app于设备通信通过udp广播或mqtt服务器通信.udp广播为在整个局域网(255.255.255.255)的10181和10182端口通信.由于udp广播的特性,udp局域网通信不稳定,建议有条件的还是使用mqtt服务器来通信. app设置 在侧边栏点击设置,进入设置页面.可设置mqtt服务器.(此处总是通过UDP连接选项无效!) 设备控制页面 (每总设备页面不同) 界面下方的服务器已连接、服务器已断开 是指app与mqtt服务器连接状态显示.与设备连接状态无关. 右上角,云图标为与设备同步mqtt服务器配置.由于可以自定义mqtt服务器,所以除了需要将手机连入mqtt服务器外,还需要将被控设备连入...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值