常用脚本_失败自动重复下载

常用脚本_失败自动重复下载

在网络不稳定时,下载可能常常会中断或者失败,通过脚本下载来实现下载失败之后,重新下载。

比如在github上下载一个包:
Linux上用shell:

#!/bin/bash

DOWNLOAD_URL=https://github.com/STMicroelectronics/STM32CubeF1/archive/refs/tags/v1.8.5.tar.gz

echo " Download is starting"
RETRY_CNT=0
wget $DOWNLOAD_URL > download.log 2>&1
while(($? != 0))
do
    sleep 2
    RETRY_CNT=`expr $RETRY_CNT + 1`
    echo " Download failed, retry $RETRY_CNT times."
    wget $DOWNLOAD_URL >> download.log 2>&1
done
echo " Download successfully !"

运行截图:
在这里插入图片描述
对应产生的日志

--2023-05-06 16:21:13--  https://github.com/STMicroelectronics/STM32CubeF1/archive/refs/tags/v1.8.5.tar.gz
Resolving github.com (github.com)... 20.205.243.166
Connecting to github.com (github.com)|20.205.243.166|:443... connected.
HTTP request sent, awaiting response... Read error (Connection reset by peer) in headers.
Retrying.

--2023-05-06 16:21:33--  (try: 2)  https://github.com/STMicroelectronics/STM32CubeF1/archive/refs/tags/v1.8.5.tar.gz
Connecting to github.com (github.com)|20.205.243.166|:443... failed: Connection refused.
Resolving github.com (github.com)... 20.205.243.166
Connecting to github.com (github.com)|20.205.243.166|:443... failed: Connection refused.
--2023-05-06 16:22:18--  https://github.com/STMicroelectronics/STM32CubeF1/archive/refs/tags/v1.8.5.tar.gz
Resolving github.com (github.com)... 20.205.243.166
Connecting to github.com (github.com)|20.205.243.166|:443... failed: Connection refused.
--2023-05-06 16:22:41--  https://github.com/STMicroelectronics/STM32CubeF1/archive/refs/tags/v1.8.5.tar.gz
Resolving github.com (github.com)... 20.205.243.166
Connecting to github.com (github.com)|20.205.243.166|:443... failed: Connection refused.
--2023-05-06 16:23:04--  https://github.com/STMicroelectronics/STM32CubeF1/archive/refs/tags/v1.8.5.tar.gz
Resolving github.com (github.com)... 20.205.243.166
Connecting to github.com (github.com)|20.205.243.166|:443... failed: Connection refused.
--2023-05-06 16:23:27--  https://github.com/STMicroelectronics/STM32CubeF1/archive/refs/tags/v1.8.5.tar.gz
Resolving github.com (github.com)... 20.205.243.166
Connecting to github.com (github.com)|20.205.243.166|:443... failed: Connection refused.
--2023-05-06 16:23:50--  https://github.com/STMicroelectronics/STM32CubeF1/archive/refs/tags/v1.8.5.tar.gz
Resolving github.com (github.com)... 20.205.243.166
Connecting to github.com (github.com)|20.205.243.166|:443... failed: Connection refused.
--2023-05-06 16:24:13--  https://github.com/STMicroelectronics/STM32CubeF1/archive/refs/tags/v1.8.5.tar.gz
Resolving github.com (github.com)... 20.205.243.166
Connecting to github.com (github.com)|20.205.243.166|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://codeload.github.com/STMicroelectronics/STM32CubeF1/tar.gz/refs/tags/v1.8.5 [following]
--2023-05-06 16:24:17--  https://codeload.github.com/STMicroelectronics/STM32CubeF1/tar.gz/refs/tags/v1.8.5
Resolving codeload.github.com (codeload.github.com)... 20.205.243.165
Connecting to codeload.github.com (codeload.github.com)|20.205.243.165|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 44425109 (42M) [application/x-gzip]
Saving to: ‘v1.8.5.tar.gz’

     0K .......... .......... .......... .......... ..........  0%  278K 2m36s
    50K .......... .......... .......... .......... ..........  0%  552K 1m57s
......
......
......
......
 43300K .......... .......... .......... .......... .......... 99% 2.18M 0s
 43350K .......... .......... .......... ...                  100% 4.30M=7.5s

2023-05-06 16:24:25 (5.68 MB/s) - ‘v1.8.5.tar.gz’ saved [44425109/44425109]

Windows用的bat:

@echo off
SET /A "index=1"

:while

git clone https://xxxxxxxxxxx.git
if %ERRORLEVEL% NEQ 0 (
    SET /A "index=index + 1"
    echo download failed and retry  %index% times.
    goto :while
)
echo download success.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值