如题,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
你把这个解决了我就告诉你