日期:2014-05-16  浏览次数:20811 次

linux 缓存
在Linux下删除一个文件,这个文件删除成功了
然后在创建一个跟原文件名一样的文件,这时候新文件里有删除前的原始数据。这是怎么整的??这个数据在缓存里?
是不是这个数据在内存里存着,然后往这个文件里写?

------解决方案--------------------
是不是这个文件你删除时还有文件在处理,还有linux下rm删除文件并不是真删除,文件的inode还存在~
------解决方案--------------------
说错了,是数据库还存在,rm只是释放了该文件所占用的索引节点inode
------解决方案--------------------
有进程在持续写log
------解决方案--------------------
可能是还有别的进程再写这个文件吧?
------解决方案--------------------
执行一下sync,在看一下。如果还有文件,就可能有其他文件还在读写。
------解决方案--------------------
应该是某个进程还在控制着这个文件,并且在不停的边写而且定时保存……
可能LZ刚删除,建立完文件,就被其他进程把文件给覆盖了……
LZ可以使用lsof或者fuser看看谁在控制这个文件……
另外……
LS的说法需要纠正,文件保存是将内存数据写入缓冲区(虽然看上去是直接写入硬盘),sync是将缓冲区的数据和硬盘同步,所以,sync根本不可能替代文件保存的功能,如果你没有保存过文件,无论你sync多少次,这个文件都不会在目录中出现(或者被更改)……
------解决方案--------------------
额,这个还没有注意过,下次试一下
------解决方案--------------------
探讨
LZ可以使用lsof或者fuser看看谁在控制这个文件……