linux

如何通过MinIO实现Linux数据的自动化备份

小樊
42
2025-08-07 14:25:55
栏目: 智能运维

通过MinIO实现Linux数据自动化备份,可参考以下方案:

一、使用MinIO客户端(mc)工具

  1. 安装MinIO客户端
    下载并安装mc工具:

    wget https://dl.min.io/client/mc/release/linux-amd64/mc
    chmod +x mc
    sudo mv mc /usr/local/bin/
    
  2. 配置MinIO连接
    使用mc alias set命令添加MinIO服务器信息:

    mc alias set myminio http://minio-server:9000 ACCESS_KEY SECRET_KEY
    
  3. 编写备份脚本
    创建脚本backup.sh,内容示例:

    #!/bin/bash
    BACKUP_DIR="/data/backup/minio/$(date +%Y%m%d%H%M%S)"
    mkdir -p $BACKUP_DIR
    mc cp --recursive myminio/mybucket /path/to/source $BACKUP_DIR
    tar -czvf $BACKUP_DIR.tar.gz $BACKUP_DIR
    find /data/backup/minio -type f -name "*.tar.gz" -mtime +7 -exec rm {} \;
    
  4. 设置定时任务
    通过crontab -e添加周期性执行任务,例如每天凌晨2点运行:

    0 2 * * * /path/to/backup.sh
    

二、使用MinIO API(Python示例)

  1. 安装MinIO Python库

    pip install minio
    
  2. 编写备份脚本

    from minio import Minio
    import os
    
    client = Minio("minio-server:9000",
                   access_key="ACCESS_KEY",
                   secret_key="SECRET_KEY",
                   secure=False)
    
    def backup_bucket(bucket_name, source_path, backup_dir):
        objects = client.list_objects(bucket_name, recursive=True)
        for obj in objects:
            file_path = os.path.join(source_path, obj.object_name)
            client.fget_object(bucket_name, obj.object_name, file_path)
            # 可进一步压缩或上传至其他存储
    
    backup_bucket("mybucket", "/path/to/source", "/data/backup")
    
  3. 定时执行脚本
    同样通过crontab设置定时任务。

三、实时同步备份(可选)

使用mc mirror命令实现实时同步,适合持续备份场景:

mc mirror --watch /path/to/source myminio/mybucket

注意事项

0
看了该问题的人还看了