以下是针对 Ubuntu 系统修改的 Shell 脚本,实现自动重启 Ollama 下载过程以提高速度:
bash
#!/bin/bash
# 设置要下载的模型名称
MODEL="deepseek-r1:7b"
# 无限循环直到模型下载完成
while true; do
# 检查模型是否已下载完成
if ollama list | grep -q "$MODEL"; then
echo "模型已下载完成"
break
fi
echo "开始下载模型..."
# 后台运行 Ollama pull 命令
ollama run "$MODEL" &
PROCESS_ID=$!
# 等待60秒(可根据需要调整时间)
sleep 60
# 尝试终止进程
if kill -9 "$PROCESS_ID" 2>/dev/null; then
echo "已终止当前下载,准备重启..."
else
echo "终止进程时出错(可能进程已结束)"
fi
# 短暂等待确保资源释放
sleep 5
done
使用说明:
- 将上述代码保存为
ollama_pull.sh
- 赋予执行权限:
chmod +x ollama_pull.sh
- 修改脚本中的
MODEL
变量为你需要的模型名称 - 运行脚本:
./ollama_pull.sh
脚本工作原理:
- 每 60 秒自动重启一次 Ollama 下载进程
- 利用 Ollama 的断点续传特性,通过反复重启来保持高速下载阶段
- 检测模型是否下载完成,完成后自动退出循环
注意事项:
- 可根据网络情况调整
sleep 60
中的时间值 - 如果网络波动较大,建议增大等待时间
- 脚本终止后,可随时重新运行,不会丢失已下载的数据
加入输入模型名称参数
下面是一个支持命令行参数输入模型名称的 Shell 脚本,它能够自动重启 Ollama 下载进程以提升下载速度:
bash
#!/bin/bash
# 检查是否提供了模型名称参数
if [ -z "$1" ]; then
echo "请提供模型名称作为参数,例如:$0 llama2:7b"
exit 1
fi
# 获取命令行参数作为模型名称
MODEL="$1"
echo "目标模型:$MODEL"
# 无限循环直到模型下载完成
while true; do
# 检查模型是否已下载完成
if ollama list | grep -q "$MODEL"; then
echo "模型已下载完成"
break
fi
echo "开始下载模型..."
# 后台运行 Ollama pull 命令
ollama run "$MODEL" &
PROCESS_ID=$!
# 等待60秒(可根据需要调整时间)
sleep 60
# 尝试终止进程
if kill -9 "$PROCESS_ID" 2>/dev/null; then
echo "已终止当前下载,准备重启..."
else
echo "终止进程时出错(可能进程已结束)"
fi
# 短暂等待确保资源释放
sleep 5
done
使用说明:
- 把上面的代码保存成文件,命名为
ollama_pull.sh
- 给脚本添加执行权限,使用命令:
chmod +x ollama_pull.sh
- 运行脚本时,在后面加上你想要下载的模型名称,例如:
bash
./ollama_pull.sh llama2:7b
./ollama_pull.sh mistral:7b
脚本功能说明:
- 脚本会自动每 60 秒重启一次 Ollama 下载进程
- 借助 Ollama 的断点续传功能,不断重启来维持较高的下载速度
- 会自动检测模型是否下载完成,下载好后就会自动结束运行
参数自定义建议:
- 你可以通过修改
sleep 60
中的数值来调整重启的时间间隔 - 如果网络状况不稳定,可以适当增加等待时间
- 要是想调整资源释放的等待时间,修改
sleep 5
这一行即可