方法一:使用MinIO的备份工具
bash
# 下载并安装MinIO mc客户端
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/bin/
# 配置mc以连接到你的MinIO服务器
mc alias set myminio http://<MINIO_SERVER_ADDRESS>:9000 <YOUR_ACCESS_KEY> <YOUR_SECRET_KEY>
# 备份某bucket到其他目录
mc cp -r myminio/mybucket /home/bak
方法二:使用rsync进行备份
bash
mkdir -p /home/scripts
mkdir -p /home/scripts/log/
vim /home/scripts/rsyncd.secrets #添加服务器的rsync密码,不会的参看我另外一篇rsync文章
chmod 600 /home/scripts/rsyncd.secrets
vim /home/scripts/rsync_backup.sh
bash
#!/bin/bash
# 设置环境变量(关键!)
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# 配置
SOURCE="/home/minio/"
DEST="rsync_user@服务器IP::Minio"
LOGFILE="/home/scripts/log/rsync_cron_$(date +%Y%m%d).log"
LOCKFILE="/home/rsync_backup.lock"
PASSWORDFILE="/home/scripts/rsyncd.secrets"
# 检查是否已有实例在运行(防止重复执行)
if [ -f "$LOCKFILE" ]; then
echo "[$(date)] ERROR: rsync already running. Exiting." >> "$LOGFILE"
exit 1
fi
# 创建锁文件
touch "$LOCKFILE"
trap 'rm -f "$LOCKFILE"; exit' INT TERM EXIT
# 执行 rsync
echo "[$(date)] Starting rsync..." >> "$LOGFILE"
/usr/bin/rsync -avhzP --partial --stats --password-file="$PASSWORDFILE" "$SOURCE" "$DEST" >> "$LOGFILE" 2>&1
# 记录结束时间
echo "[$(date)] rsync finished." >> "$LOGFILE"
chmod +x /home/scripts/rsync_backup.sh
0 2 * * * /home/scripts/rsync_backup.sh >/dev/null 2>&1