从另一台机器查看 scp 进度

从另一台机器查看 scp 进度

假设我正在scp将一个大文件 (300GB) 从公司服务器传输到我的工作场所计算机,而周末期间我无法访问该计算机(防火墙阻止 ssh 到办公网络内的计算机);因此我不能只是连接到它并查看进度。现在scp,当我使用家用计算机上的相同帐户 ssh 进入服务器时,我是否可以看到该工作的进度?这当然不是很有用,但无论如何我很好奇。

答案1

您可以使用lsof列出服务器上 scp 进程打开的当前文件的信息。pidof scp例如,使用 查找其进程 ID ,然后lsof -p在该 pid 上使用。您还需要选项-o来显示正在读取的文件中的当前偏移量scp。例如

$ pidof scp
29273

$ lsof -op 29273
COMMAND   PID USER   FD   TYPE DEVICE    OFFSET    NODE NAME
scp     29273  meuh  cwd    DIR  179,2            273367 /home/meuh
scp     29273  meuh  rtd    DIR  179,2                 2 /
scp     29273  meuh  txt    REG  179,2            260817 /usr/bin/scp
...
scp     29273  meuh    0r  FIFO   0,10       0t0 3005108 pipe
scp     29273  meuh    1w  FIFO   0,10       0t0 3005109 pipe
scp     29273  meuh    2w  FIFO   0,10       0t0 3005110 pipe
scp     29273  meuh    3r   REG  179,2 0t2834432     530 /home/meuh/x

最后一行显示文件描述符 3 已准备好从 file 的偏移量 2834432 读取/home/meuh/x。您可以watch重复该命令并查看更改。

相关内容