• 需求分析

    • 前几天电脑由于端口常开和弱密码原因,中了勒索病毒,电脑全盘被加密,所幸没有很重要的数据以及开了百度云盘的文件夹备份损失不大

      image-20230503160920779

    • 及时没有外部因素的影响,硬盘的数据安全性并非100%,机械硬盘的安全性会随着工作时长的增加而降低,固态硬盘又会随着读写的增加而降低

    • 使用raid磁盘阵列方式存储,现在来说保存数据量不大,成本不划算

  • 初步设想

    • 利用腾讯云的对象存储,在云端备份存储一份数据副本;

    • 使用官方提供的OSCLI工具,每天定时同步备份;

      COSCLI 是腾讯云对象存储(Cloud Object Storage,COS)提供的客户端命令行工具。通过 COSCLI 工具,您可以通过简单的命令行指令对您 COS 中的对象(Object)实现批量上传、下载、删除等操作。

      COSCLI 使用 Go 编写,基于 Cobra 框架,支持配置多个存储桶和跨桶操作。您可以通过 ./coscli [command] --help 来查看 COSCLI 的使用方法。

    • 考虑的标准存储的价格相对较贵,通过数据仅做备份,并不经常读取,可以将存储类型调整为归档存储或者深度归档存储

  • 开始上手

    • 基础准备

      • 下载COSCLI 工具

        wget https://cosbrowser.cloud.tencent.com/software/coscli/coscli-linux -O coscli;
        chmod +x coscli;
        mv /bin/coscli;
        # 查看当前版本
        coscli -v

        image-20230503162417817

      • 控制台开启对象存储服务,创建存储桶

        image-20230503162642417

      • 打开访问管理获取API密钥管理

        image-20230503162828969

      • 初始化生成配置文件,按照描述提示逐步输入,这里不详细演示

        coscli config init

        一般情况下,配置文件位于/root/.cos.yaml

        image-20230503163330089

    • 尝试备份

      以备份cloudreve网盘从机uploads目录为例

      • 同步命令

        #cloudreve 网盘备份
        coscli sync /hdd/cloudreve_uploads/ cos://global-backup/home_backup/hdd/cloudreve_uploads/ -r --snapshot-path /etc/coscli/cos-snapshot --thread-num 10
      • 截图

        备份时截图

        image-20230503163747848

        image-20230503163851129

      • 利用crontab设置定时任务

        # 安装crontab
        yum install vixie-cron
        yum install crontabs
        # 检查是否安装成功
        crontab -l

        image-20230503164700796

      • 输入crontab -e每天凌晨3点启动定时任务

        0 3   *   *   *   root    coscli sync /hdd/cloudreve_uploads/ cos://global-backup/home_backup/hdd/cloudreve_uploads/ -r --snapshot-path /etc/coscli/cos-snapshot --thread-num 10

        image-20230503165721402

    • 进阶与尝试

      目前有一个疑问,如果文件类型转为归档存储了,那么对数据同步是否会造成影响,是否会产生数据取回费?

      • 设置生命周期规则,文件修改时间的1天后沉降至深度归档存储,节省备份储备

        注意点

        • 对象前缀设置说明

          如您希望对某个前缀下的文件执行生命周期管理操作,请在此处设置相应的前缀。COS 没有目录概念,字母和符号均属于前缀,且此处为从左至右严格匹配,即,如果想让生命周期对以 AA 为前缀和 AA/,AAA/ 为虚拟目录前缀的对象均生效,此处可以配置为 AA,如果只想针对以 AA/ 为虚拟目录前缀的对象生效,则需要配置为 AA/。

        • 归档存储、深度归档存储

          归档存储、深度归档存储属于冷数据类型,适用于极少访问、需要长期保存数据的业务场景。详情请查看文档存储类型说明

          归档存储、深度归档存储类型的数据有最低存储时间限制,提前删除将按照最低存储时长收费。归档存储数据最低存储90天、深度归档存储数据最低存储180天。详情请查看文档归档存储容量费用说明

          归档存储、深度归档存储类型的数据在访问前需要先把数据取回。即把数据恢复(解冻)成标准存储类型的副本后,再进行读取操作。按照不同的恢复模式,会产生相应的数据取回费用以及取回请求费用。详情请查看文档数据取回费用深度归档取回请求费用

          通过生命周期沉降会产生后端请求次数,按不同存储类型计费。详情请查看文档请求费用

        image-20230503170313063

    • 全部备份命令

      #cloudreve 网盘备份
      #冷备
      coscli sync /hdd/cloudreve_uploads/ cos://global-backup/home_backup/hdd/cloudreve_uploads/ -r --snapshot-path /etc/coscli/cos-snapshot/cloudreve_uploads --thread-num 10
      
      #samba home 备份
      #无需备份
      coscli sync /hdd/home/ cos://global-backup/home_backup/hdd/home/ -r --snapshot-path /etc/coscli/cos-snapshot/rdb_home --thread-num 10
      
      #cdn-static-resource 备份
      #冷备
      coscli sync /ssd/file-satic/ cos://global-backup/home_backup/ssd/file-satic/ -r --snapshot-path /etc/coscli/cos-snapshot/file-satic --thread-num 10
      
      #docker config 备份
      #热备
      coscli sync /ssd/app/ cos://global-backup/hot_home_backup/ssd/app/ -r --thread-num 10

      挂载与/mnt下对于同步命令

      #cloudreve 网盘备份
      #冷备
      coscli sync /mnt/rdb/cloudreve_uploads/ cos://global-backup/home_backup/hdd/cloudreve_uploads/ -r --snapshot-path /etc/coscli/cos-snapshot/cloudreve_uploads --thread-num 10
      
      #samba home 备份
      coscli sync /mnt/rdb/home/ cos://global-backup/home_backup/hdd/home/ -r --snapshot-path /etc/coscli/cos-snapshot/rdb_home --thread-num 10
      
      #cdn-static-resource 备份
      #冷备
      coscli sync /mnt/rda/file-satic/ cos://global-backup/home_backup/ssd/file-satic/ -r --snapshot-path /etc/coscli/cos-snapshot/file-satic --thread-num 10
      
      #docker config 备份
      #热备
      coscli sync /mnt/rda/app/ cos://global-backup/hot_home_backup/ssd/app/ -r  --snapshot-path /etc/coscli/cos-snapshot/rda_app --thread-num 10
  • 总结

    对象存储对于数据备份是一个很好的存储通道,但是要做好隐私保护以及避免流量被刷,同时不要忘记不要上传违规内容。

  • 参考链接

文章目录