我的连接速度非常慢(~10KB/s),因为我的移动运营商限制了我的速度。现在,他们会发送大约 32KB 的数据,然后停止。
我正在尝试通过 apt-get 安装软件包,我注意到我可以停止(ctrl-c)然后重新启动安装,它会从上次中断的地方继续。
这样做,我可以得到一点数据,然后停止它,启动它,然后我得到更多的数据,否则(不停止和重新启动)我必须等待大约 15 秒才能获得更多数据
有什么方法可以自动执行此操作并让脚本停止 apt-get 并重新启动?
答案1
这是一个脚本,它将软件包名称作为参数并apt-get
重复运行,并在几秒钟后将其终止。它apt-get
以“下载”模式运行,因此它只会下载,而不会安装。您可能需要sleep
根据提供商限制下载的速度来调整时间。
#!/bin/bash
me=$(basename $0)
if (($# == 0))
then
printf "Usage: %s package [package]...\n" $me
exit 1
fi
printf "Will install %d package(s).\n" $#
printf "This will run forever.\n"
printf "You can stop it by pressing ctrl-C when prompted.\n"
printf "If that fails, open another window and type 'killall %s'.\n" $me
read -p "Press 'Enter' to continue: "
while :
do
timeout 3 apt-get -y -d install "$@"
printf "Press ctrl-C within one second to stop\n"
sleep 1
done
答案2
我认为最好尝试Ctrl在Z后台暂停该进程。你也许可以fg
使用恢复一旦你的连接恢复。
要暂停作业,请按Ctrl+ Z。
当您收到网络信号时重新启动作业:
fg %1
答案3
你可能想要使用apt-fast,它会同时从多个镜像下载。即使您断开与其中一个镜像的连接,它也会继续从其他镜像下载。您可以直接从 apt-fast 的 GitHub 页面下载并设置它,它有非常完善的文档。