有没有办法在
Linux中创建链接到特定iNode的文件?
采取这种情况:有一个文件正在写入(可能是一个日志),并且特定文件被删除但dir / proc中的链接仍然指向它.在这种情况下,我们不需要它的裸副本,而是它的硬链接,因此我们可以在进程关闭之前进行未来的修改和最后的修改,系统将其删除.
采取这种情况:有一个文件正在写入(可能是一个日志),并且特定文件被删除但dir / proc中的链接仍然指向它.在这种情况下,我们不需要它的裸副本,而是它的硬链接,因此我们可以在进程关闭之前进行未来的修改和最后的修改,系统将其删除.
如果我们有iNode号码有没有办法实现这个目标?
解决方法
由于没有涉及iNode的Syscall,因为这是一个extX fs的概念,并且不是一个好的做法制作炉管但是它是一个负责任的链(如MEL建议的那样),这个问题只有一个答案.因为在VFS级别,我们处理文件路径和名称而不是其他内部表示.
但要实现跟踪最后修改的目标,我们可以使用尾部连续监视和复制:
tail -c+1 -f --pid=PID /proc/PID/fd/FD > /path/to/the/copy
其中PID是已删除文件仍然打开且FD是其文件描述符编号的进程的pid.使用-f tail打开并保持文件显示进一步修改,使用-c 1从第一个字节开始“尾”并使用–pid = PID tail在pid退出时通知退出.