通過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