您现在的位置是:首页 > Linux教程 > aria2+rclone自动上传的代码:可以下载后自动上传并删除文件记录

aria2+rclone自动上传的代码:可以下载后自动上传并删除文件记录

时间:2020-01-21 18:03:33  来源:VPS科普网  阅读次数: 我要评论

阿里云服务器 腾讯云服务器 习梦云:高防云服务器 ZJI:香港日本美国独服
LOCVPS服务周到 HostKvm低调KVM 傲游主机:优质VPS 80VPS:老牌VPS主机
搬瓦工:CN2 GIA线路 CloudCone:性价比高 Vultr:按小时计费VPS VirMach:超级便宜
JustMySocks科学上网 CloudRaft大硬盘VPS 洛杉矶QN机房官方VPS 恒创:香港CN2服务器

翻了好多的帖子,都没有自己想要的Aria2+rclone上传的代码,于是自己根据之前的qbittorrent+rclone然后改了一个出来。为什么新增了这样一个:很多的aria2的上传代码中,上传结束后没有删除,对于我们这种小j太难受了。使用之前需要先修改使用参数。

#!/bin/shcontent_dir=$3files_num=$2task_id=$1downloadpath='/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}fitmp_dir=$content_direcho "原始目录:${content_dir}" >> ${log_dir}/ariaUP.logwhile 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    fidoneif [ "${files_num}" = "0" ]   then   echo -e "/t文件数量为0 直接跳过/n" >> ${log_dir}/ariaUP.log   exit fiif [ "${content_dir}" = "/" ] || [ "${tmp_dir}" != "${downloadpath}" ]    then    echo -e "/t路径异常${tmp_dir} 直接跳过/n" >> ${log_dir}/ariaUP.log    exitfi# 提取其中的相对路径-这个路径就比较绝对了relative_dir="${content_dir/${downloadpath}/}" # 移除downloadpath内容后的content_dirrelative_dir="${relative_dir:1}" # 移除掉坐起斜杠echo "相对路径:${relative_dir}" >> ${log_dir}/ariaUP.logfunctiON 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_delelif [ -d "${content_dir}" ]then    echo "[$(date '+%Y-%m-%d %H:%M:%S')] 类型:目录 ${content_dir}" >> ${log_dir}/ariaUP.log   type="dir"   rclone_copy   rclone_delelse   echo "[$(date '+%Y-%m-%d %H:%M:%S')] 未知类型,取消上传" >> ${log_dir}/ariaUP.logfiecho "内容路径:${content_dir}" >> ${log_dir}/ariaUP.logecho "上传路径:${rclone_dest}:${relative_dir}" >> ${log_dir}/ariaUP.logecho "文件数:${files_num}" >> ${log_dir}/ariaUP.logecho -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即可。
---------
本人测试已经没有问题。可以下载后自动上传并删除文件记录。


搬瓦工:CN2 GIA线路 CloudCone:性价比高 Vultr:按小时计费VPS VirMach:超级便宜
JustMySocks科学上网 CloudRaft大硬盘VPS 洛杉矶QN机房官方VPS 恒创:香港CN2服务器
留言与评论(共有 0 条评论)
   
验证码: