通过MinIO实现Linux数据自动化备份,可参考以下方案:
安装MinIO客户端
下载并安装mc工具:
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/
配置MinIO连接
使用mc alias set
命令添加MinIO服务器信息:
mc alias set myminio http://minio-server:9000 ACCESS_KEY SECRET_KEY
编写备份脚本
创建脚本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 {} \;
设置定时任务
通过crontab -e
添加周期性执行任务,例如每天凌晨2点运行:
0 2 * * * /path/to/backup.sh
安装MinIO Python库
pip install minio
编写备份脚本
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")
定时执行脚本
同样通过crontab
设置定时任务。
使用mc mirror
命令实现实时同步,适合持续备份场景:
mc mirror --watch /path/to/source myminio/mybucket