在后台运行SCP并监控进度

11

我正在后台运行一个scp命令:

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

我输入了密码 - 按下ctrl-z来停止命令,然后使用bg重新启动它,并通过执行jobs来确认它正在运行。然而,如果我不将其置于后台运行,是否有一种监视文件传输进度的方法?

谢谢。


如果你只是想查看某些操作,可以尝试使用IOTop进行IO监控和HTop进行进程监控。 - Frank Thomas
3
我想查看传输速率和剩余时间,就像运行普通的SCP命令一样。 - Tamas
9个回答

9
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 -> 这将使它在您退出系统时继续运行。


3
在运行CentOS / Red Hat / Fedora时,我只需使用以下命令:
ps aux | grep scp

检查正在运行的scp进程。为了查看它们是否在工作,我喜欢使用:

du -s -c -h *

如果您正在使用 AWS EC2,您可以切换到“实例”部分,监视启动卷上的网络和读写操作。要查看其他驱动器的情况,请切换到“卷”部分的“监控”选项卡并选择一个卷。


3
你可以使用screen(1)或类似工具,而不是bg。
然后你可以使用control-ad来分离屏幕,使用screen -d -r来重新附加。
如果需要的话,你也可以注销并再次登录,而不会失去重新连接的能力,所以它非常适用于不可靠的网络。这个工具诞生于人们在调制解调器上执行 Slip 和 PPP 操作之前。

2
您可以使用jobs命令来检查进程。
例如,jobs -l将列出所有正在运行的进程以及进程ID。请参考此网站获取参考信息。

0

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

tail -n 10 -f nohup.out

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

-f告诉命令跟随nohup.out。执行命令后,显示写入文件的每个内容。


0

对我来说,仅使用详细模式才会将一些内容附加到nohup.out文件中。

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

在使用tail -f nohup.out进行监控之后


0
你可以使用 watch tail nohup.out 来做到这一点。

0
也许你可以将 STDERR 重定向到文件并使用 tail -f 监视它。

0
你可以使用screen(1)或类似工具,而不是bg。
然后,您可以使用control-ad进行分离,使用screen -d -r进行重新连接。
您还可以根据需要注销并重新登录,而不会失去重新连接的能力,因此在不稳定的网络上非常好用。它可以追溯到人们在串行调制解调器上执行滑动和PPP时期。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接