🤖 Assistant
在 Docker 中 Rclone 同步 Google Photos 到 OneDrive 和 189Cloud
本教程将教你如何使用 Docker 和 Rclone 工具,自动化同步 Google Photos 到 OneDrive 和 189Cloud。你将学习如何创建 Docker 容器,配置 Rclone,并设置同步脚本。
1. 创建 Docker 容器并配置 Rclone
首先,我们需要使用 Docker 来创建并启动一个 Rclone 容器。以下是命令行参数及其作用:
docker run -d
--name rclone
--cap-add SYS_ADMIN
--security-opt apparmor:unconfined
--network host
--privileged
-e UID=0
-e GID=0
-e GIDLIST=0
-e TZ=Asia/Shanghai
-v /root/app/rclone/config:/config/rclone
-v /etc/passwd:/etc/passwd:ro
-v /etc/group:/etc/group:ro
--restart unless-stopped
--entrypoint /bin/sh
rclone/rclone
-c "/config/rclone/sync.sh"
解释每个参数的作用:
-d: 在后台运行容器,命令执行后不会阻塞终端。--name rclone: 设置容器的名称为rclone。--cap-add SYS_ADMIN: 给容器添加管理员权限,允许执行一些系统级操作。--security-opt apparmor:unconfined: 禁用 AppArmor 安全配置,这有时对 Rclone 使用有帮助。--network host: 使用宿主机的网络模式,使容器共享宿主机的 IP 地址。--privileged: 给予容器更多的权限,允许它执行更多系统级操作。-e UID=0: 设置容器内用户的 UID 为0,即根用户权限。-e GID=0: 设置容器内用户的 GID 为0,即根组权限。-e GIDLIST=0: 配置额外的组 GID。-e TZ=Asia/Shanghai: 设置容器的时区为Asia/Shanghai。-v /root/app/rclone/config:/config/rclone: 将本地目录/root/app/rclone/config映射到容器内的/config/rclone,存放 Rclone 配置文件。-v /etc/passwd:/etc/passwd:ro: 映射宿主机的passwd文件,保持用户身份。-v /etc/group:/etc/group:ro: 映射宿主机的group文件,保持用户组信息。--restart unless-stopped: 设置容器重启策略,除非手动停止容器,否则容器会自动重启。--entrypoint /bin/sh: 指定容器启动时运行的命令为/bin/sh。rclone/rclone: 使用官方的 Rclone Docker 镜像。-c "/config/rclone/sync.sh": 容器启动时执行/config/rclone/sync.sh脚本。
2. 创建同步脚本
在 Docker 容器内,我们通过一个脚本来实现 Google Photos 到 OneDrive 和 189Cloud 的同步。
#!/bin/sh
rclone sync gphotos:/media/by-month onedrive:/gphotos --transfers=10 -P --log-file=/config/rclone/onedrive.txt
rclone sync gphotos:/media/by-month 189cloud:/gphotos --transfers=10 -P --log-file=/config/rclone/189cloud.txt
脚本解释:
#!/bin/sh: 指定脚本使用的 shell 类型。rclone sync: 使用rclone sync命令来同步两个云存储的内容。gphotos:/media/by-month: 源路径,这里是 Google Photos 中的/media/by-month文件夹。onedrive:/gphotos: 目标路径,将同步内容到 OneDrive 上的/gphotos文件夹。189cloud:/gphotos: 目标路径,将同步内容到 189Cloud 上的/gphotos文件夹。--transfers=10: 设置最大并行传输数为 10,提升同步速度。-P: 显示同步进度。--log-file=/config/rclone/onedrive.txt: 将同步日志输出到文件/config/rclone/onedrive.txt,你可以通过这个文件查看同步状态。
3. 设置文件权限
确保 sync.sh 脚本文件具有可执行权限:
chmod +x /root/app/rclone/config/sync.sh
这个命令会使得 sync.sh 脚本文件变得可执行,确保在容器启动时能够正确运行。
总结
通过以上步骤,你成功地配置了一个 Docker 容器来自动化同步 Google Photos 到 OneDrive 和 189Cloud。使用 Docker 使得整个过程更加便捷,同时通过 Rclone 可以灵活地管理和同步多种云存储服务。如果你希望定期执行这个同步任务,可以通过添加 cron 定时任务或者让 Docker 容器持续运行来实现。
正文完