设为首页收藏本站

简体中文 繁體中文 English 日本語 Deutsch 한국 사람 بالعربية TÜRKÇE português คนไทย Français

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 61|回复: 6

发个aria2+rclone自动上传的代码

[复制链接]

12

主题

79

回帖

202

积分

中级会员

积分
202
发表于 2020-1-16 16:35:27 | 显示全部楼层 |阅读模式
本帖最后由 千牛 于 2020-1-16 16:47 编辑

翻了好多的帖子,都没有自己想要的aria2+rclone上传的代码,于是自己根据之前的qbittorrent+rclone然后改了一个出来
为什么新增了这样一个:很多的aria2的上传代码中,上传结束后没有删除,对于我们这种小j太难受了
使用之前需要先修改使用参数
[ol]
  • #!/bin/sh
  • content_dir=$3
  • files_num=$2
  • task_id=$1
  • downloadpath='/usr/local/caddy/www/aria2/Download' # 下载目录-需要和aria2一致
  • log_dir="/root/.aria2"  # 这里是存放log的地方-默认和aria放在一起
  • rclone_dest="AC"        # rclone的disk名称-需要修改
  • rpc_pwd="pwd"           # aria2的rpc的密码-需要修改
  • rpc_url="http://xxx.xxx.xxx:6800/jsonrpc" # aria2的rpc地址--需要修改
  • rclone_parallel="32"
  • if [ ! -d ${log_dir} ]
  • then
  •         mkdir -p ${log_dir}
  • fi
  • tmp_dir=$content_dir
  • echo "原始目录:${content_dir}" >> ${log_dir}/ariaUP.log
  • while true; do  #提取下载文件根路径,如把/data/a/b/c/d.jpg变成/data/a
  •     content_dir="${tmp_dir}"
  •     tmp_dir=${tmp_dir%/*};
  •    
  •     if test -z "${tmp_dir}"
  •         then
  •         break
  •     elif [ "${tmp_dir}" = "${downloadpath}" ] && [ $2 -eq 1 ]
  •         then
  •         break
  •     elif [ "${tmp_dir}" = "${downloadpath}" ]   #文件夹
  •         then
  •         break
  •     fi
  • done
  • if [ "${files_num}" = "0" ]
  •    then
  •    echo -e "\t文件数量为0 直接跳过\n" >> ${log_dir}/ariaUP.log
  •    exit
  • fi
  • if [ "${content_dir}" = "/" ] || [ "${tmp_dir}" != "${downloadpath}" ]
  •     then
  •     echo -e "\t路径异常${tmp_dir} 直接跳过\n" >> ${log_dir}/ariaUP.log
  •     exit
  • fi
  • # 提取其中的相对路径-这个路径就比较绝对了
  • relative_dir="${content_dir/${downloadpath}/}" # 移除downloadpath内容后的content_dir
  • relative_dir="${relative_dir:1}" # 移除掉坐起斜杠
  • echo "相对路径:${relative_dir}" >> ${log_dir}/ariaUP.log
  • function rclone_copy(){
  •     if [ ${type} == "file" ]
  •     then
  •         rclone_copy_cmd=$(rclone -v copy --transfers ${rclone_parallel} --log-file  ${log_dir}/ariaUP.log "${content_dir}" ${rclone_dest}:)
  •     elif [ ${type} == "dir" ]
  •     then
  •         rclone_copy_cmd=$(rclone -v copy --transfers ${rclone_parallel} --log-file  ${log_dir}/rloneUP.log "${content_dir}" ${rclone_dest}:"${relative_dir}")
  •     fi
  •     # echo '';
  • }
  • function rclone_del(){
  •         rm -rf "${content_dir}";
  •         rm -rf "${content_dir}.aria2";
  •         curl -X POST -d "{"jsonrpc":"2.0","method":"aria2.removeDownloadResult","id":"mjj","params":["token:${rpc_pwd}","${task_id}"]}" "${rpc_url}"
  •         # echo '';
  • }
  • if [ -f "${content_dir}" ]
  • then
  •    echo "[$(date '+%Y-%m-%d %H:%M:%S')] 类型:文件 ${content_dir}" >> ${log_dir}/ariaUP.log
  •    type="file"
  •    rclone_copy
  •    rclone_del
  • elif [ -d "${content_dir}" ]
  • then
  •    echo "[$(date '+%Y-%m-%d %H:%M:%S')] 类型:目录 ${content_dir}" >> ${log_dir}/ariaUP.log
  •    type="dir"
  •    rclone_copy
  •    rclone_del
  • else
  •    echo "[$(date '+%Y-%m-%d %H:%M:%S')] 未知类型,取消上传" >> ${log_dir}/ariaUP.log
  • fi
  • echo "内容路径:${content_dir}" >> ${log_dir}/ariaUP.log
  • echo "上传路径:${rclone_dest}:${relative_dir}" >> ${log_dir}/ariaUP.log
  • echo "文件数:${files_num}" >> ${log_dir}/ariaUP.log
  • echo -e "-------------------------------------------------------------\n" >> ${log_dir}/ariaUP.log[/ol]复制代码
    使用方法很简单:
    1. 确认你的下载路径:/root/.aria2/.aria2.conf
    [ol]
  • # 文件的保存路径(可使用绝对路径或相对路径), 默认: 当前启动位置
  • dir=/usr/local/caddy/www/aria2/Download[/ol]复制代码
    2. 新增aria2的下载结束任务事件
    [ol]
  • on-download-complete=/root/.aria2/ariaup.sh[/ol]复制代码
    3. 新建/root/.aria2/ariaup.sh并填入上面你修改好的的代码 不要忘了给运行权限
    [ol]
  • chmod +x /root/.aria2/ariaup.sh[/ol]复制代码
    之后重启aria2即可
    ---------
    本人测试已经没有问题。可以下载后自动上传并删除文件记录
    ps:修改自:xcy1020 AT: https://www.52.ht/thread-612238-1-1.html
  • 回复

    使用道具 举报

    2

    主题

    25

    回帖

    60

    积分

    注册会员

    积分
    60
    发表于 2020-1-16 16:38:27 | 显示全部楼层
    前排Mark一下。
    回复

    使用道具 举报

    508

    主题

    2206

    回帖

    6004

    积分

    论坛元老

    积分
    6004
    发表于 2020-1-16 16:40:13 | 显示全部楼层
    谢谢大佬分享,已经收藏
    回复

    使用道具 举报

    86

    主题

    785

    回帖

    1890

    积分

    金牌会员

    积分
    1890
    发表于 2020-1-16 16:40:35 | 显示全部楼层
    马克,感谢大佬!!
    回复

    使用道具 举报

    129

    主题

    1529

    回帖

    3589

    积分

    论坛元老

    积分
    3589
    发表于 2020-1-16 16:42:12 | 显示全部楼层
    马克 正好需要 感谢
    回复

    使用道具 举报

    2

    主题

    45

    回帖

    108

    积分

    注册会员

    积分
    108
    发表于 2020-1-16 16:42:53 | 显示全部楼层
    好东西,感谢大佬分享
    回复

    使用道具 举报

    188

    主题

    2358

    回帖

    5340

    积分

    论坛元老

    积分
    5340
    发表于 2020-1-16 16:47:39 | 显示全部楼层
    发个docker一键运行+ AriaNg + aria2 + h5ai
    https://github.com/anshengme/docker-bt
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|Discuz! X

    GMT+8, 2025-12-22 16:21 , Processed in 0.028998 second(s), 4 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2025 Discuz! Team.

    快速回复 返回顶部 返回列表