9

scp在后台运行一个命令:

 nohup scp file.gz root@target-host:/root/ > nohup.out 2>&1

我输入了密码 - 我点击ctrl-z停止命令并用 重新启动它bg,我可以通过执行来确认它正在运行jobs。但是,有没有一种方法可以监控文件传输的进度(即我是否会在不将其置于后台的情况下运行它)?

谢谢你。

4

9 回答 9

4

在运行 CentOS / Red Hat / Fedora 时,我只使用:

ps aux | grep scp

检查正在运行的 scp 进程。要查看他们是否在做任何事情,我喜欢使用:

du -s -c -h *

如果您在AWS EC2,您可以切换到 Instances 部分来监控启动卷上的网络和 r/w 操作。要查看其他驱动器在做什么,请切换到卷部分的监控选项卡并选择一个卷。

于 2014-03-11T01:49:29.903 回答
4

您可以使用 screen(1) 或类似的,而不是 bg。

然后您可以 control-ad 分离和 screen -d -r 重新附加。

您还可以根据需要注销并重新登录,而不会失去重新连接的能力,因此它非常适合不可靠的网络。它可以追溯到人们在调制解调器上进行 Slip 和 PPP 的时候,以及之前。

于 2012-10-30T21:38:24.867 回答
2

您可以使用jobs命令来检查进程。

例如jobs -l,将列出所有正在运行的进程以及进程 ID。请参阅此站点以供参考。

于 2018-03-30T09:04:03.010 回答
2
nohup scp <file_name> user@<IP_Address>:<path>
nohup: ignoring input and appending output to 'nohup.out'
user@IP_address's password:
Ctrl+z
bg
disown -h %1

bg -> 将作业发送到后台。

disown -h %1 -> 即使您退出系统,这也会让它运行

于 2019-08-23T09:05:28.760 回答
0

也许您可以重定向STDERR到文件并用于tail -f 监视它

于 2012-10-30T21:37:18.483 回答
0

你可以使用watch tail nohup.out

于 2014-06-10T07:35:14.093 回答
0

您可以使用 screen(1) 或类似的,而不是 bg。

然后您可以 control-ad 分离和 screen -d -r 重新附加。

您还可以根据需要注销并重新登录,而不会失去重新连接的能力,因此它非常适合不可靠的网络。它可以追溯到人们通过串行调制解调器进行 Slip 和 PPP 的时候。

于 2012-10-30T21:37:24.977 回答
0

您可以使用tail命令查看 nohup.out 的输出。只需在终端上写下以下命令。

尾 -n 10 -f nohup.out

-n 10 告诉要显示的内容末尾的行数。

-f 告诉命令遵循 nohup.out。显示执行命令后将写入文件的所有内容。

于 2015-09-28T18:51:12.970 回答
0

对我来说,只有使用详细模式才会附加一些东西nohup.out

nohup scp -v file.gz root@target-host:/root/ > nohup.out 2>&1

之后可以使用监控tail -f nohup.out

于 2020-03-22T07:47:07.027 回答