我.tar.gz
为备份目的创建了一个文件。虽然它仍在通过 SCP 传输(它是一个 6 GB 的文件),但我不小心在 SSH 会话中删除了它。
SCP 传输仍在运行。在那种情况下会发生什么?文件会好吗?为什么?会坏吗?如果是这样,为什么文件传输不中断?
我.tar.gz
为备份目的创建了一个文件。虽然它仍在通过 SCP 传输(它是一个 6 GB 的文件),但我不小心在 SSH 会话中删除了它。
SCP 传输仍在运行。在那种情况下会发生什么?文件会好吗?为什么?会坏吗?如果是这样,为什么文件传输不中断?
scp
将毫无问题地复制您的文件。如果您删除由某个进程打开的影片,则只会删除文件名,但该文件仍然存在。您可以通过符号链接访问已删除的文件,其中使用该文件的进程的进程 ID在
/proc/$PID/fd
哪里。$PID
我有一个好主意,我想我自己想出来了:
对我来说,这意味着 SCP 仍在访问该文件并且仍然具有有效的文件句柄。对于其他任何人,文件将被删除,如括号中所示。因此,没有其他人将再获得该已删除文件句柄的有效文件句柄。
现在,由于 SCP 下载完成,我可以再次检查:
注意结果是空的,文件句柄已经关闭。
在我的客户端上,我能够
.tar.gz
使用 7Zip (Windows) 解压缩文件。它没有抱怨校验和损坏或其他任何事情。这支持了上述理论。干得好,Linux!