docker里面的minio的备份方法

方法一:使用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

相关推荐
niucloud-admin5 分钟前
JAVA V6 多商户商城 开发文档——手机端前端
java·开发语言·前端
skywalk816315 分钟前
deepseekharness在对话中,有四种模式,分别是极简、PTC、创造和标准模式,每种模式下挂载的插件、skill等数量不一样
前端·人工智能·实践
愛芳芳23 分钟前
element-plus+vite+vue3+pinpa+mock+typeScript搭建经典的电商管理后台
前端·javascript·typescript
liangshanbo12151 小时前
面试题:常见的前端构建工具有哪些?分别适用于什么场景?
前端
linux_cfan1 小时前
videojs v10 源代码系列解读:30 · `SerialRunner` 与 `ConcurrentRunner`
前端
liangshanbo12151 小时前
面试题:页面需要发起大量 Ajax / HTTP 请求时,如何优化请求性能?
前端·http·ajax
lyz2468591 小时前
vue3页面因参数未声明而报错的常犯错误
前端·javascript·vue.js
摸爬滚打的小李2 小时前
流程图同步AI生成
前端
Hilaku2 小时前
我重写了整个项目,但没人感谢我!
前端·javascript·程序员
zach2 小时前
Vue/React SPA 打包部署后,子路由刷新 401 未登录问题彻底解决
前端·nginx·next.js