关闭 SSH 会话后如何监控 WGET 下载进度

And*_*ath 7 ssh wget

我已经开始使用wget. 关闭ssh会话后,如何查看下载过程?

场景:我开始下载,然后关闭我的电脑。第二天我ssh进入服务器并想查看下载是否仍然有效、完成或已中断。

Ija*_*han 13

如果您运行 wget 并关闭终端或终止您的 ssh session ,它也会终止 wget 进程。即使在会话关闭后,您也需要运行 wget 并使其保持运行。

为此,有许多工具。

   wget -bqc http://path-to-url/linux.iso
Run Code Online (Sandbox Code Playgroud)

您将在屏幕上看到一个 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.
Run Code Online (Sandbox Code Playgroud)

nohup 命令

您还可以在退出 shell 提示符后使用 nohup 命令来执行命令。语法是:

   $ nohup wget -qc http://path-to-url/linux.iso &

   ## exit from shell or close the terminal ##
   $ exit
Run Code Online (Sandbox Code Playgroud)

disown 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
Run Code Online (Sandbox Code Playgroud)

屏幕命令

为此,您也可以使用 screen 命令。


小智 5

转到下载目录并输入

tail -f wget-log 
Run Code Online (Sandbox Code Playgroud)


And*_*ath 1

经过一番谷歌搜索后,我发现了一个名为 Screen 的应用程序,找到了答案。

在服务器 ( sudo apt-get install screen) 上安装后,您可以通过 SSH 连接到服务器并在服务器上打开一个屏幕会话screen -S SESSION_NAME(将 SESSION_NAME 替换为您喜欢的任何名称)。然后运行 ​​WGET,下载运行后,使用 CTRL+a 退出会话,然后按 d(会话中分离)。您可以同时运行多个会话(具有不同的名称)。

稍后重新登录后,您可以通过 SSH 连接到服务器并使用screen -r SESSION_NAME(重新连接到会话)重新打开服务器上的屏幕会话来检查进程。

会话完成后,使用 CTRL+a 终止它,然后按 k(终止会话)。

这就像在虚拟终端中拥有一个虚拟终端一样。