Loading... ### 安装Rclone ```bash sudo -v ; curl https://rclone.org/install.sh | sudo bash ``` ### 第二步:配置 Rclone 连接 Alist (WebDAV) 现在 Alist 已经把网盘转换成了 WebDAV,我们要用 Rclone 去连接这个 WebDAV。 1. **运行配置向导** **Bash** ``` rclone config ``` 2. **交互式配置流程** (请参考以下输入): * `n` (New remote) * **name:**`alist` (或者你自己喜欢的名字) * **Storage:** 找到 **WebDAV** 选项,输入对应的数字 (通常在列表的后面)。 * **url:**`http://127.0.0.1:5244/dav` * *注意:一定要加上 `/dav` 后缀,且如果 Rclone 和 Alist 在同一台机器,用 127.0.0.1 速度最快。* * **vendor:** 选择 `Other`。 * **user:** Alist 的用户名 (默认是 `admin`)。 * **password:** Alist 的密码 (第一步里你获取的那个)。 * **bearer\_token:** 直接回车跳过。 * **Edit advanced config?:**`n` (No)。 * **Keep this "alist" remote?:**`y` (Yes)。 * `q` (Quit)。 ### 1. 编写同步脚本 创建一个脚本文件,例如 `qb_upload.sh`: ``` vim /home/bosaidon/qb_upload.sh ``` ``` #!/bin/bash # ================= 配置区域 ================= # 1. Rclone 配置的名称 (rclone config 中设置的名字) RCLONE_REMOTE="alist" # 2. 本地下载目录 (源目录) LOCAL_DIR="/home/bosaidon/qb_data/downloads" # 3. 阿里云盘在 Alist 中的路径 (目标路径1) # 格式: /Alist挂载名/你想要存放的子文件夹 ALIYUN_PATH="/aliyun" # 4. 百度网盘在 Alist 中的路径 (目标路径2) BAIDU_PATH="/baidu" # 5. 日志文件路径 LOG_FILE="/home/bosaidon/rclone_upload.log" # =========================================== # 检查 Rclone 是否正在运行,防止重复执行堆积 if pidof -o %PPID -x "$(basename "$0")"; then echo "$(date "+%Y-%m-%d %H:%M:%S") - 脚本已在运行中,本次跳过。" >> "$LOG_FILE" exit 1 fi echo "$(date "+%Y-%m-%d %H:%M:%S") - 开始同步任务..." >> "$LOG_FILE" # 定义上传函数 do_upload() { local DEST_PATH=$1 local DEST_NAME=$2 echo "正在上传到: $DEST_NAME ..." >> "$LOG_FILE" # 核心命令解释: # copy: 仅复制,不删除目标端文件 (安全) # --transfers=4: 同时上传的文件数,WebDAV 建议不要太高,4-6 比较稳 # --ignore-existing: 如果云端已有同名文件,跳过 (节省流量和时间) # --min-age 1m: 仅上传 1 分钟前创建的文件 (防止上传正在下载中的未完成文件) /usr/bin/rclone copy "$LOCAL_DIR" "$RCLONE_REMOTE:$DEST_PATH" \ --log-file="$LOG_FILE" \ --log-level=INFO \ --transfers=4 \ --checkers=8 \ --ignore-existing \ --min-age 1m if [ $? -eq 0 ]; then echo "$(date "+%Y-%m-%d %H:%M:%S") - [$DEST_NAME] 同步完成." >> "$LOG_FILE" else echo "$(date "+%Y-%m-%d %H:%M:%S") - [$DEST_NAME] 同步发生错误,请查看日志详情." >> "$LOG_FILE" fi } # --- 执行上传阿里云盘 --- do_upload "$ALIYUN_PATH" "阿里云盘" # --- 执行上传百度网盘 --- do_upload "$BAIDU_PATH" "百度网盘" echo "$(date "+%Y-%m-%d %H:%M:%S") - 所有任务结束." >> "$LOG_FILE" echo "-----------------------------------------------------" >> "$LOG_FILE" ``` ### 2. 赋予脚本执行权限 ``` chmod +x /home/bosaidon/qb_upload.sh ``` ### #### 方案 A:qBittorrent 下载完成后自动触发(推荐) 这是最实时的方案。每当一个种子下载完成,qBittorrent 就会调用这个脚本。 1. 打开 qBittorrent 的 Web UI 或客户端。 2. 进入 **Tools (工具)** -> **Options (选项)** -> **Downloads (下载)**。 3. 勾选 **Run external program on torrent completion (下载完成后运行外部程序)**。 4. 在框中填入: **Bash** ``` /home/bosaidon/qb_upload.sh ``` 5. 保存。 * *注:这种方式每次下载完都会扫描一遍目录,脚本里的 `ignore-existing` 参数会确保不会重复上传旧文件。* #### 方案 B:Crontab 定时任务(适合批量处理) 如果你不希望频繁触发,可以设置为每小时或每天凌晨运行一次。 1. 编辑 crontab: ``` crontab -e ``` 2. 添加一行(例如每 2 小时运行一次): ``` 0 */2 * * * /home/bosaidon/qb_upload.sh ``` ### 最后修改:2025 年 12 月 15 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏