常用脚本_失败自动重复下载
在网络不稳定时,下载可能常常会中断或者失败,通过脚本下载来实现下载失败之后,重新下载。
比如在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.