跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 发个aria2+rclone自动上传的代码
未分類
3 2 月 2020

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

千牛 大佬有话说 : 2020-1-16 16:35:27

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

本帖最后由 千牛 于 2020-1-16 16:47 编辑

翻了好多的帖子,都没有自己想要的aria2+rclone上传的代码,于是自己根据之前的qbittorrent+rclone然后改了一个出来
为什么新增了这样一个:很多的aria2的上传代码中,上传结束后没有删除,对于我们这种小j太难受了
使用之前需要先修改使用参数
#!/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
使用方法很简单:
1. 确认你的下载路径:/root/.aria2/.aria2.conf
# 文件的保存路径(可使用绝对路径或相对路径), 默认: 当前启动位置
dir=/usr/local/caddy/www/aria2/Download
2. 新增aria2的下载结束任务事件
on-download-complete=/root/.aria2/ariaup.sh
3. 新建/root/.aria2/ariaup.sh并填入上面你修改好的的代码 不要忘了给运行权限
chmod +x /root/.aria2/ariaup.sh
之后重启aria2即可
———
本人测试已经没有问题。可以下载后自动上传并删除文件记录
ps:修改自:xcy1020 AT: https://www.hostloc.com/thread-612238-1-1.html

大米 大佬有话说 : 2020-1-16 16:38:27

前排Mark一下。

etc 大佬有话说 : 2020-1-16 16:40:13

谢谢大佬分享,已经收藏

C51 大佬有话说 : 2020-1-16 16:40:35

马克,感谢大佬!!

riwsh 大佬有话说 : 2020-1-16 16:42:12

马克 正好需要 感谢

TvT 大佬有话说 : 2020-1-16 16:42:53

好东西,感谢大佬分享

ansheng 大佬有话说 : 2020-1-16 16:47:39

发个docker一键运行+ AriaNg + aria2 + h5ai
https://github.com/anshengme/docker-bt

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具