一、静态文件:没有进程或程序正在访问的文件
删除原理:所有硬链接数为0.
二、动态文件:有进程或程序正在访问的文件
删除原理:1.所有硬链接数为0.(i_link=0) 2.所有进程调用都要停止取消。(i_count=0)
当我们执行rm命令时,删除的只是文件名,文件的inode和block还是存在的。
以下几种情况,会清理剩余的内容:
1.系统定时清理没有文件名的inode和block。
2.磁盘检查会清理。
3.增加新文件时,会优先占用没有文件名的inode和block。
当误删除时,立即关机,避免文件数据被覆盖或清除,再用数据恢复工具进行恢复。
作为运维人员,一定要避免上述情况发生,所以要多做备份,操作前备份,异服务器、异地备份。
ps:
破坏系统数据,最有效的方法,不是删除,而是覆盖。
实战案例:
当我们使用某个服务时,可能会产生大量日志文件,如果直接删除当天的日志文件,实际上删除的只是文件名,因为进程还在调用它的inode,就会导致磁盘空间被占用,而我们却找不到文件,解决办法:重启服务,相当于终端进程和文件inode的联系。
预防:可以用脚本定时清理前几天的日志文件。