在后台运行SCP并监控进度

时间:2012-10-30 21:30:23

标签: linux scp nohup

我在后台运行scp命令:

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

我输入了密码 - 我点击ctrl-z暂停命令并使用bg重新启动它,我可以通过执行jobs确认它正在运行。但是,有没有办法监控文件传输的进度(即如果我将它运行而不将其放在后台)?

谢谢。

9 个答案:

答案 0 :(得分:4)

您可以使用屏幕(1)或类似内容,而不是bg。

然后你可以控制广告去分离和屏幕-d -r重新连接。

您也可以根据需要注销并重新登录,而不会失去重新连接的能力,因此它对于不可靠的网络来说非常棒。它可以追溯到人们在调制解调器之前以及之前使用Slip和PPP的时间。

答案 1 :(得分:3)

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

ps aux | grep scp

检查正在运行的scp进程。为了看他们是否做了什么,我喜欢使用:

du -s -c -h *

如果您在AWS EC2,则可以切换到Instances部分以监控启动卷上的网络和r / w操作。要查看其他驱动器正在执行的操作,请切换到“卷”部分中的“监视”选项卡,然后选择一个卷。

答案 2 :(得分:2)

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

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

答案 3 :(得分:0)

也许您可以将STDERR重定向到文件并使用tail -f进行监控

答案 4 :(得分:0)

您可以使用屏幕(1)或类似内容,而不是bg。

然后你可以控制广告去分离和屏幕-d -r重新连接。

您也可以根据需要注销并重新登录,而不会失去重新连接的能力,因此它对于不可靠的网络来说非常棒。它可以追溯到人们通过串行调制解调器进行滑动和PPP时。

答案 5 :(得分:0)

您可以watch tail nohup.out使用

答案 6 :(得分:0)

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

  

tail -n 10 -f nohup.out

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

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

答案 7 :(得分:0)

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->即使您退出系统,这也将使其运行

答案 8 :(得分:0)

对我来说,仅使用详细模式会将某些内容附加到nohup.out

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

使用tail -f nohup.out

进行监视之后