华为obsutil下载优化脚本,解决卡死问题
华为obsutil下载优化脚本
华为obs官方的命令行工具自带md5校验和断点续传,相比传统的curl和wget下载能极大程度的降低下载大文件的时候出问题的概率。然而问题在于它运行的时候每隔几个小时就可能会陷入假死状态,即网络没问题的情况下没有下载进度,本笔记介绍了我写的脚本来解决这个问题。
链接下载命令
./obsutil share-cp 链接 /sdd/Raw_data/xlyang/PL -ac=密码 -r -u -f -vmd5
AK下载命令
./obsutil config -e 下载链接 -i ID -k key #验证
./obsutil ls obs://annoroad-cloud-product/user/cache/project/XS01KF2023020222/PM-XS01KF2023020222-17/ #检查
下载命令解释
./obsutil cp file_path local_path -r -f -u -j 3 -p 3
其中,file_path是要下载内容在服务器上的文件路径;
local_path是本地存放路径;
-r 即下载文件及文件夹,若无此参数,只下载文件;
-j -p即并发控制,两者相乘是占用的总线程数,若服务器本身资源充足希望加快传输速度可适当调高;
-u 增量复制操作参数,可简单理解为断点续传;
-f 覆盖本地文件;
-ps 每个分段下载任务的段大小,单位:字节;若出现下载不完整的情况,建议根据网速进行指定,如 -ps=1MB。
-vmd5 进行md5验证
使用下载脚本
既然每隔几个小时假死,那我每隔几个小时重启obs进程就行了。
#!/bin/bash
start_time="$(date +%s)" # 记录脚本开始时间
while true; do # 无限循环
nohup sh -c "nohup 下载命令 -r -u -j 3 -p 3 -f -vmd5 > /dev/null 2>&1 &" & # 替换成您要执行的命令
sleep 61
current_time="$(date +%s)" # 获取当前时间
# 判断脚本是否运行超过12小时
if (( current_time - start_time > 18*60*60 )); then
echo "Script has been running for 18 hours. Exiting."
exit # 运行超过18小时,结束脚本运行,当任务下载完成后脚本也会自动暂停
fi
while true; do
if pgrep -f "obs" >/dev/null; then
echo "your_command is rebooting"
ps -ef | grep xlyang | grep obs | grep -v grep | awk '{print $2}' | xargs kill
sleep 3
nohup sh -c "nohup 下载命令 -r -u -j 3 -p 3 -f -vmd5 > /dev/null 2>&1 &" & # 替换成您要执行的命令
sleep 3h #每三个小时重启一次obs服务
else
break
fi
done
done
还想要更多代码?不知道怎么搭建?想让别人帮忙生信分析?欢迎来我的闲鱼咨询!价格绝对全网最低
本文链接:
/archives/1690269306792
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
星落_Blog!
喜欢就支持一下吧