关于用aria2上传脚本调用rclone并发数的问题
侧边栏壁纸
  • 累计撰写 57,209 篇文章
  • 累计收到 0 条评论

关于用aria2上传脚本调用rclone并发数的问题

James
2020-11-21 / 0 评论 / 77 阅读 / 正在检测是否收录...

如题,vps是buyvm的最低配+256的存储块,当我从别人的onedrive下载一部电视剧时,包含几十个直链,通常下载速度远大于上传速度(世纪互联单个文件上传速度限制100Mbs)。于是就出现问题了,vps本地有多少文件,脚本就会生成多少个并行的rclone任务。cpu和内存在相当长的一段时间内都几乎处于满载状态,并行数高于5个大概率会崩溃 所以我想问问大佬们能不能给上传脚本的上传并行数加一个限制。rclone的--transfers(控制最大同时传输任务数量)貌似没用?改为3之后,cpu和内存依旧几乎占满。。。。。。

原脚本地址:https://github.com/P3TERX/aria2.conf/blob/master/upload.sh

这是脚本关于上传部分的代码:

UPLOAD_FILE(){

echo-e"$(DATE_TIME)${INFO}Startuploadfiles..."

TASK_INFO

RETRY=0

RETRY_NUM=3

while[${RETRY}-le${RETRY_NUM}];do

  [${RETRY}!=0]&&(

    echo

    echo-e"$(DATE_TIME)${ERROR}Uploadfailed!Retry${RETRY}/${RETRY_NUM}..."

    echo

  )

  rclonemove-v"${LOCAL_PATH}""${REMOTE_PATH}"

  RCLONE_EXIT_CODE=$?

  if[${RCLONE_EXIT_CODE}-eq0];then

    UPLOAD_LOG="$(DATE_TIME)${INFO}Uploaddone:${LOCAL_PATH}->${REMOTE_PATH}"

    OUTPUT_UPLOAD_LOG

    DELETE_EMPTY_DIR

    break

  else

    RETRY=$((${RETRY}+1))

    [${RETRY}-gt${RETRY_NUM}]&&(

      echo

      UPLOAD_LOG="$(DATE_TIME)${ERROR}Uploadfailed:${LOCAL_PATH}"

      OUTPUT_UPLOAD_LOG

    )

    sleep3

  fi

done

}


-----------------------------------------------------
网友回复:

引用:qianmianyao发表于2020-11-1222:06

上传可以用rsync


网友回复:

你可以考虑写一个队列脚本,aria2的进入队列池,然后队列池单独维护一个worker操作rclone

超级简单版:

aria2完成时队列脚本生成1.txt2.txt……

队列池master监控1.txt2.txt……发现则启动worker操作rclone,上传完成就删除对应txt


网友回复:

引用:Syc发表于2020-11-1222:09

你可以考虑写一个队列脚本,aria2的进入队列池,然后队列池单独维护一个worker操作rclone...


网友回复:

这个支持上传到世纪互联的sharepoint?


网友回复:

引用:倚剑听枫发表于2020-11-1222:11

我要是会就不来问大家了。。。。。。


网友回复:

引用:yanaxiao发表于2020-11-1222:11

这个支持上传到世纪互联的sharepoint?


网友回复:

这个transfer是单次rclone是控制的同时任务数

aria2每完成一个任务就会启动一个rclone

可以考虑上传脚本加个判断现在进程里rclone的个数,大于三个就等待多少秒在检测

或者楼上说的列队


网友回复:

引用:倚剑听枫发表于2020-11-1222:13

上传脚本和上传到哪无关,只要你能挂载上,它就能上传


网友回复:

引用:yanaxiao发表于2020-11-1222:16

那怎么挂载25T?


网友回复:

引用:倚剑听枫发表于2020-11-1222:07

我上传到sharepoint用的,用rsync?


网友回复:

引用:倚剑听枫发表于2020-11-1222:19

你把这个解决了我就告诉你

0