我已经开始使用wget
.关闭ssh
会话后,如何重新检查下载过程?
场景:我开始下载,然后关闭计算机。第二天,我ssh
进入服务器并想查看下载是否仍然有效、完整或已被中断。
答案1
如果您运行 wget 并关闭终端或终止 ssh 会话,它也会终止 wget 进程。您需要运行 wget 并保持其运行,即使在会话关闭后也是如此。
为此,有很多工具。
wget -bqc http://path-to-url/linux.iso
您将在屏幕上看到 PID:
继续在后台运行,pid 12345。
在哪里,
-b : Go to background immediately after startup. If no output file is specified via the -o, output is redirected to wget-log.
-q : Turn off Wget’s output aka save disk space.
-c : Resume broken download i.e. continue getting a partially-downloaded file. This is useful when you want to finish up a download started by a previous instance of Wget, or by another program.
nohup 命令
您还可以使用 nohup 命令在退出 shell 提示符后执行命令。语法是:
$ nohup wget -qc http://path-to-url/linux.iso &
## exit from shell or close the terminal ##
$ exit
否认的 bash 命令
另一种选择是使用 disown 命令,如下所示:
$ wget -qc http://path-to-url/linux.iso &
[1] 10685
$ disown wget
$ ps
PID TTY TIME CMD
10685 pts/0 00:00:00 wget
10687 pts/0 00:00:00 bash
10708 pts/0 00:00:00 ps
$ logout
屏幕命令
您还可以使用 screen 命令来实现此目的。
答案2
转到下载目录并输入
tail -f wget-log
答案3
经过一番谷歌搜索后,我发现了一个名为 Screen 的应用程序,找到了答案。
在服务器 ( sudo apt-get install screen
) 上安装后,您可以通过 SSH 连接到服务器并在服务器上打开一个屏幕会话screen -S SESSION_NAME
(将 SESSION_NAME 替换为您喜欢的任何名称)。然后运行 WGET,下载运行后,使用 CTRL+a 退出会话,然后按 d(以d从会话中蚀刻。您可以同时运行多个会话(具有不同的名称)。
稍后重新登录后,您可以通过 SSH 连接到服务器并使用以下命令重新打开服务器上的屏幕会话来检查进程screen -r SESSION_NAME
:re连接到会话)。
会话完成后,使用 CTRL+a 终止它,然后按 k(以k会议生病了)。
这就像在虚拟终端中拥有一个虚拟终端一样。
答案4
您还可以使用 tmux(有点像 screen),但我认为更容易使用。
sudo apt-get install tmux
tmux new -s <session-name>
然后在会话中运行脚本按 control + b + d 分离
当你想返回终端时只需做
tmux a
优点是如果出现任何问题,您可以轻松地检查回来,但如果您想同时下载大量文件,也许检查日志更容易