# 备份要点

对于备份来说,可能是又恨又爱的,如果备份被泄露,数据很重要的话损失也很大,对于备份使用的媒体选择也很多,功能也各有优劣,下面来讨论下

# 备份数据的考虑

系统有可能由于不预期的伤害而导致系统发生错误,比如磁盘坏掉、软件问题、人为操作不当等等原因。

  • 造成系统损坏的问题-硬件问题

    特别是磁盘了,因为数据在上面,比如使用 RAID 来进行备份,但是如果 RAID 控制芯片坏掉呢?所以还是建议在有 RAID 系统时,你的数据足够重要,还是需要进行额外的备份才好

  • 造成系统损坏的问题-软件与人的问题

    系统的软件伤害罪严重的就是属于使用者操作不当的情况了,比如执行了 rm -rf / 这种删除所有数据的指令,还有 mysql 数据库的数据,万一被损坏,而数据比如是银行的数据记录等,就很严重了

  • 主机角色不同,备份任务也不同

    由于软硬件问题都可能造成系统的损坏,问题是所有主机都需要备份吗?多久备份一次呢?要备份什么数据?

    早期有 ghost 单机备份软件,近期有台湾国家高速网络中心发展的再生龙(clonzilla)软件,这软件共同特性就是可以将系统上面的磁盘数据完整复制起来,变成一个大文件,你把这份文件备份到其他的 USB 等存储设备中,未来可通过该文件恢复

    但是,如果你的主机有提供 Internet 方面的服务呢?比如 BBS 论坛网站,每天都有很多的信息流入,那么多久备份一次的考虑是非常重要的

  • 备份因素考虑

    由于计算机的稳定性较差(操作频率高、硬件良率差、使用者操作习惯不良等原因),所以备份越来越重要,那么一般在备份时考虑的因素有:

    • 备份哪些文件?

      哪些数据对系统或用户来说是最重要的?比如 /etc/* 与 /home/*

    • 选择什么备份媒介?

      是可擦写光盘、一块硬盘、同一块硬盘的不同 parition、还是使用网络设备救援系统?哪一种速度最快最便宜?可将数据保存最久?这些都是可以考虑的

    • 考虑备份的方式

      是以完整备份(类似 ghost)来备份所有数据?还是使用差异备份?

    • 备份频率

      例如 mysql 数据库是否天天备份?若完整备份需要多久进行一次?

    • 备份使用的工具

      是利用 tar、cpio、dd 还是 dump 等备份工具?

下面来讨论下这些问题

# 哪些 Linux 数据具有备份的意义

通常来说是备份最重要的文件,而不是整块磁盘数据都备份,比如现在的云主机,他们提供了磁盘快照方式进行完整备份,但是对于最重要文件进行备份这种,可以降低备份设备的容量要求,那么具有备份意义的文件通常可以大概分为两大类:

  • 系统基本设置信息
  • 网络服务的内容数据

下面稍微分析下

# 操作系统本身需要备份的文件

主要与账户、系统配置文件有关系,账户相关文件有:

  • /etc/passwd
  • /etc/shadow
  • /etc/group
  • /etc/gshadow
  • /home 用户家目录

等等。由于 Linux 预设的重要参数文件都在 /etc/ 下,所以只要将此目录备份,几乎所有的配置文件都都被备份了

至于 /home 一般用户的家目录,比如邮件目录 /var/spool/mail/ ,如果你曾经修改过核心,那么 /boot 里面的内容,所以这方面的数据必须备份的有:

  • /etc/ 整个目录
  • /home 整个目录
  • /var/spool/mail/
  • /var/spool/{at|cron}
  • /boot/
  • /root/
  • 如果自行安装过其他的软件,那么 /usr/loacal//opt/

# 网络服务的数据库方面

这部分的数据就很多且复杂了,首先是他们的配置文件,如果是以厂提供为主,那么大多数都在 /etc 下。若是你自行安装,那么 /usr/loacal 目录就相当重要了

另外就是数据,每个软件的规定数据文件可能也不相同,假设是使用原厂 RPM 方式安装的话,需要备份的数据文件有:

  • 软件本身的配置文件,例如 /etc/ 整个目录,/usr/local/ 整个目录
  • 软件服务提供的数据,这里以 www 和 mariadb 为例。
    • www : /var/www//srv/www 整个目录,以及系统的用户家目录
    • Mariadb:/var/lib/mysql 整个目录
    • 其他在 Linux 主机上提供的服务数据库文件等

# 推荐需要备份的目录

由上面的介绍来看,如果你的硬件或由于经费的关系而无法备份全部数据时,建议至少备份下面这些目录:

  • /etc/ 整个目录
  • /home 整个目录
  • /var/spool/mail//var/spool/{at|cron}
  • /boot/
  • /var/lib/

# 不需要备份的目录

有些数据是不需要备份的,比如第 5 章文件权限与目录配置里提到的 /proc 目录的数据是目前系统上正在运行的程序。外挂的机器,如 /mnt/media 里面都是挂载了其他的硬盘设备、光驱、软盘驱动等等这些数据是不需要备份的,下面列出的都是可以不备份的

  • /dev
  • /proc/sys/run
  • /mnt/media
  • /tmp

# 备份存储媒体的选择

# 本地备份

备份的文件选择一块硬盘,有可能被小偷偷走。。

# 异地备份系统

通过网络将数据备份到其他地方去,优点就是,只要所有备份的地方还有一个存在,数据就是安全的,

缺点则是:会耗费更多的带宽去传输数据,所以这种方式可能仅适合备份重要的数据文件

# 存储媒体的考虑

除了异地备份这种相对较为安全的备份外,其实还有磁盘、光盘等设备,近年来由于磁盘容量不断上升,便宜的桌面型 NAS 存储设备也逐渐被使用

NAS sh存储设备等于是一台小型 Linux server,可以提供定制化的服务,包括不同的连接接口与传输协议,因此,只要记得购买能够自我容错的 NAS 设备来备份就对了

在经费充足的情况下,考虑使用外接式的 NAS 设备,所谓的 NAS 其实就是一台内嵌 Linux 或 unix-like 的小型服务器,可能提供硬件或软件的磁盘阵列,让你可以架设 RAID10 或 RAID5、6 等的等级,所以 NAS 本身的数据就已经有保障。通过要备份的 Linux server 与之联机,就可以通过网络传输到 NAS 上了,之前的考虑几乎上都不再有限制,最多就是担心 NAS 的硬件坏掉

如果经费不足,那么就只能选择移动硬盘这种方式了