第一步:准备 rclone 配置(只做一次)
🧪 在宿主机上配置 rclone:
bashCopyEditdocker run -it --rm \
-v ~/.config/rclone:/config/rclone \
rclone/rclone config
按提示操作:
- 输入
n
新建 remote - 输入名称,比如
gdrive
- 选择
drive
(Google Drive) - 根据提示登录账号
- 完成后退出(配置文件保存在
~/.config/rclone/rclone.conf
)
📁 你可以将 rclone.conf
拷贝出来备份,用于 Docker 容器内挂载。
✅ 第二步:创建备份脚本
在当前目录创建文件:emby_backup.sh
bashCopyEdit#!/bin/sh
DATE=$(date +%F_%H-%M)
# 压缩 Emby 配置
zip -r /backup/emby_config_$DATE.zip /emby/config
# 压缩媒体结构(非视频内容,只结构信息/封面)
zip -r /backup/emby_media_index_$DATE.zip /emby/media -x "*.mp4" "*.mkv" "*.avi"
# 上传到 Google Drive(gdrive: 是你 rclone 配置的 remote 名)
rclone copy /backup gdrive:emby_backups --config /rclone/rclone.conf --create-dirs
给它加执行权限:
bashCopyEditchmod +x emby_backup.sh
✅ 第三步:更新 Docker Compose
添加到 docker-compose.yml
中:
yamlCopyEdit emby_backup:
image: alpine:latest
container_name: emby_backup
restart: unless-stopped
volumes:
- ./emby/config:/emby/config:ro
- ./media:/emby/media:ro
- ./emby_backups:/backup
- ./emby_backup.sh:/backup.sh
- ~/.config/rclone:/rclone # rclone配置
command: sh -c "apk add zip curl tzdata && \
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo '0 3 * * * /backup.sh' | crontab - && \
chmod +x /backup.sh && \
crond -f"
📌 如果你不想每天3点执行,可以调整 cron
的时间规则,如:
- 每6小时:
0 */6 * * *
- 每周一凌晨1点:
0 1 * * 1
✅ 第四步:启动容器
bashCopyEditdocker compose up -d
📁 最终效果
每天自动备份 Emby 配置 ➕ 媒体结构信息,并上传至 Google Drive:
路径 | 内容 |
---|---|
/backup/emby_config_2025-04-25_03-00.zip | Emby配置备份 |
/backup/emby_media_index_2025-04-25_03-00.zip | 媒体结构备份 |
Google Drive/emby_backups/ | 自动同步 |