在Docker中Rclone 同步 Google 相册 到OneDrive和天翼云

129次阅读
没有评论

🤖 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 容器持续运行来实现。

正文完
 0
评论(没有评论)