如何查看我删除的文件的内容,但进程仍在写入

如何查看我删除的文件的内容,但进程仍在写入

我开始了一项非常长时间运行的工作(预计需要 6 天才能完成),并且想查看其输出,所以我这样做了:

$ nohup ./thejob.sh > out.txt

当我需要查看工作进度时,我tail - f会归档。

但该out.txt文件增长太多,我删除了该文件并重新创建了它。

$ rm out.txt
$ touch out.txt

此后,没有输出发送到文件。我认为该作业失去了与文件的绑定。我可以通过使用看到作业正在运行top,但我再也看不到它的进度了。

有什么办法可以再次看到吗?

答案1

旧文件还没有消失,如果您知道写入该文件的进程的 PID,则可以访问它。你可以去/proc/<pid>/fd看看1是哪一个stdout

但这也意味着您没有从尝试删除文件中回收任何空间。

此外,一旦进程退出,该文件将被删除。

相关内容