Administrator
Administrator
发布于 2024-12-30 / 26 阅读
0
0

Ollama模型下载断连后自动下载

从外部接收下载指令

#!/bin/bash

# 定义重试次数上限(可选)
MAX_RETRIES=100
retry_count=0

# 检查是否提供了下载命令参数和期望的输出文件名
if [ -z "$1" ]; then
    echo "请提供一个下载指令,例如: ./download_model.sh 'curl -O https://example.com/model.zip'"
    exit 1
fi

# 获取用户提供的下载命令
download_command="$1"

# 循环执行下载命令,直到成功或达到最大重试次数
while true; do
    # 执行下载命令并捕获输出和错误码
    output=$(eval "stdbuf -oL -eL $download_command" 2>&1 | tee /dev/tty)

    exit_code=$?

    # 检查输出中是否包含特定的错误信息
    if [[ "$output" != *"max retries exceeded"* && "$output" != *"unexpected EOF"* ]]; then
        echo "模型下载成功!"
        break
    else
        retry_count=$((retry_count + 1))
        echo "第$retry_count次尝试失败,错误信息: $output"

        # 检查是否达到最大重试次数
        if [ $retry_count -ge $MAX_RETRIES ]; then
            echo "已达到最大重试次数,停止尝试。"
            exit 1
        fi

        # 等待一段时间再进行下一次尝试(可选)
        sleep 5
    fi
done

下载示例

sh download_model.sh 'ollama run llama3.3'


评论