自动增量备份到外部驱动器

Modified on: Sat, 30 Jun 2018 07:49:30 +0800

背景

客户需要一个外部驱动器的自动备份解决方案(每周一次。我通常建议RSS快照 (或者可能推出自定义rsync脚本),但这个问题稍微复杂一些。

基于Arch Linux的系统无头,因此解决方案必须完全自动化,无需用户干预。

理想情况如下:

  1. 用户插入USB硬盘
  2. 完成增量备份
  3. 已卸下硬盘
  4. 通知用户可以拔下硬盘驱动器
  5. 醇>

    提案

    我提出的解决方案包括:

    1. udev规则自动安装驱动器
    2. 备份以:

      开始

      1. 相同的udev规则也会触发rsnapshot脚本
      2. inotify create 事件检测到新的挂载点和触发rsnapshot
    3. 退出rsnapshot后,在驱动器上运行umount

    4. 可以删除通知硬盘的可能方法:


      1. CD驱动器打开
      2. 通过PC扬声器播放声音
    5. 醇>

      如果在任何时候发生错误,请通过电子邮件发送给用户并卸载驱动器。

      问题

      1. 我的建议似乎可行,但有明显的缺陷吗?我怎样才能使它健壮?
      2. 出于安全考虑,如何确保插入的硬盘是用户的? ssh键?驱动器标签?
      3. 是否存在包含此内容的现有(Linux)解决方案?
      4. 醇>
作者:Community,tlvince

最佳答案

然而,您的解决方案似乎相对合适:

  • 确保rsnapshot脚本不会假定知道块设备。理想情况下,通过其UUID或标签来处理文件系统,以避免大屠杀。
  • 添加超时。这样,如果出现我们不知道的错误,或者导致脚本永远无法完成的事情,可以将其作为错误处理,而不是无限期地继续。
  • 您声明最后“发生任何错误,请向用户发送电子邮件并卸载驱动器” - 如果无法卸载驱动器,或者卸载失败,会发生什么?如果电子邮件失败会怎么样?确保将failafes构建到您的系统中。
  • 对于基本安全性,UUID应该没问题(除非攻击者可能知道您的UUID),但是,如果安全性更受关注,请考虑将一些数据写入MBR的代码区域(字节0-440) ),并在开始备份之前让脚本检查它。你应该被警告说,通过默默无闻,这比其他任何东西更安全,但在这种情况下,我没有看到任何容易获得的优越方法。但是,如果要完全使用,可以通过分析存储在磁盘上的加密证书来确定驱动器是否已获得授权。当udev检测到驱动器时​​,脚本使用其密钥解密证书。证书包含与驱动器相关的参数,例如驱动器的序列号,型号,容量等,然后将从加密证书中提取的参数与分析驱动器时看到的参数进行比较。如果参数匹配,则确定驱动器是可信的,否则驱动器将被拒绝,并且脚本将终止。

现有的Linux解决方案属于这个职权范围,但是,根据您的具体需求,我认为您最好不要制定定制的解决方案而不是摆弄其他程序的来源让他们做您想做的事情

要将随机数据写入MBR的代码区域,然后可以检查,请执行dd if=/dev/urandom of=/dev/sdX bs=440 count=1

作者:,Chris Down

相关问答

添加新评论