测验:文件与目录
我用rm删除了10GB的日志文件,但是df中的可用空间根本没有增加。你首先应该怀疑什么?
- 文件系统损坏,需要进行fsck。
- rm 失败,但我没有看到任何错误。
- 磁盘缓存尚未反映
- 有一个进程仍在打开文件
我删除了原始文件名,但硬链接打开,只有符号链接被破坏。为什么?
- 因为硬链接只是同一 inode 的另一个名称,而符号链接则指向已清除的路径字符串。
- 因为硬链接自动将原始数据复制到一个单独的文件中。
- 因为符号链接不缓存文件内容。
- 因为只有硬链接仍然可以引用其他文件系统中的 inode,
df 表示有空间,但文件创建失败,并显示设备上没有剩余空间。为什么要检查 df -i?
- 这是因为 df -i 显示的块使用情况比 df -h 更准确。
- 这是因为 df -i 也计算已删除的打开文件。
- 因为 df -h 是缓存值,df -i 是实时值。
- 这是因为 inode 是文件计数资源,可以与块分开耗尽。
我在同一文件系统中使用 mv 移动了 1GB 文件,它立即完成。为什么?
- 内核继续在后台复制
- 因为文件都已经上传到页面缓存了。
- 因为只有目录项发生变化,所以数据块保持不变。
- mv 总是很快,因为它创建一个硬链接,然后删除原始链接。
当我使用 rsync 将 --link-dest 生成备份目录移动到另一台服务器时,容量增加了两倍。原因是什么?
- 通过删除传输压缩选项,它被保存为原始大小。
- 如果没有硬链接保留选项 (-H),链接将被复制到单独的文件中。
- 实际数据是通过符号链接指向的文件复制的。
- 传输部分的块级去重功能已被禁用。
我正在尝试恢复已删除的日志文件的内容。首先你不应该做什么?
- 使用 lsof +L1 查找持有进程
- 检查 /proc/PID/fd 下的符号链接
- 重新启动打开文件的进程。
- 将 /proc/PID/fd/N 复制到另一个路径。