我scp
在后台运行一个命令:
nohup scp file.gz root@target-host:/root/ > nohup.out 2>&1
我输入了密码 - 我点击ctrl-z
停止命令并用 重新启动它bg
,我可以通过执行来确认它正在运行jobs
。但是,有没有一种方法可以监控文件传输的进度(即我是否会在不将其置于后台的情况下运行它)?
谢谢你。
在运行 CentOS / Red Hat / Fedora 时,我只使用:
ps aux | grep scp
检查正在运行的 scp 进程。要查看他们是否在做任何事情,我喜欢使用:
du -s -c -h *
如果您在AWS EC2
,您可以切换到 Instances 部分来监控启动卷上的网络和 r/w 操作。要查看其他驱动器在做什么,请切换到卷部分的监控选项卡并选择一个卷。
您可以使用 screen(1) 或类似的,而不是 bg。
然后您可以 control-ad 分离和 screen -d -r 重新附加。
您还可以根据需要注销并重新登录,而不会失去重新连接的能力,因此它非常适合不可靠的网络。它可以追溯到人们在调制解调器上进行 Slip 和 PPP 的时候,以及之前。
您可以使用jobs
命令来检查进程。
例如jobs -l
,将列出所有正在运行的进程以及进程 ID。请参阅此站点以供参考。
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 -> 即使您退出系统,这也会让它运行
也许您可以重定向STDERR
到文件并用于tail -f
监视它
你可以使用watch tail nohup.out
它
您可以使用 screen(1) 或类似的,而不是 bg。
然后您可以 control-ad 分离和 screen -d -r 重新附加。
您还可以根据需要注销并重新登录,而不会失去重新连接的能力,因此它非常适合不可靠的网络。它可以追溯到人们通过串行调制解调器进行 Slip 和 PPP 的时候。
您可以使用tail
命令查看 nohup.out 的输出。只需在终端上写下以下命令。
尾 -n 10 -f nohup.out
-n 10 告诉要显示的内容末尾的行数。
-f 告诉命令遵循 nohup.out。显示执行命令后将写入文件的所有内容。
对我来说,只有使用详细模式才会附加一些东西nohup.out
nohup scp -v file.gz root@target-host:/root/ > nohup.out 2>&1
之后可以使用监控tail -f nohup.out