免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6156 | 回复: 8
打印 上一主题 下一主题

请大家帮下忙,linux下怎样清空一个正在被写的文件,而不产生文件空洞 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-21 16:19 |只看该作者 |倒序浏览
情况是这样的:
           由于代码bug,用于生产的系统(不能重启)所产生的日志文件不再根据时间进行切换,所有的日志写入同一个文件,该日志文
件不断增大。现在尝试用crontab定时备份并清空文件。但是日志文件虽然内容被清空,但是文件大小不变(文件空洞),用more命令查看,
发现文件前面一片空白,只有到文件底部发现有新写入的数据。
自我分析:
           这是由于写日志的进程保存了文件指针值(文件描述表项),虽然清空了文件但该文件指针值依然不变,所以产生文件空洞。
求助:
         用什么办法,可以备份当前日志内容,并减小日志文件大小,新内容又能被正确写入。

论坛徽章:
0
2 [报告]
发表于 2010-01-21 16:33 |只看该作者
找个时间重启程序最好

论坛徽章:
0
3 [报告]
发表于 2010-01-21 16:39 |只看该作者

回复 #2 xz1980 的帖子

要是可以重启就好了

论坛徽章:
0
4 [报告]
发表于 2010-01-21 16:55 |只看该作者
修改inode中文件大小和地址信息?不知道是否可行

论坛徽章:
0
5 [报告]
发表于 2010-01-21 17:35 |只看该作者
cat /dev/null > filename行不行啊。。。。


如果不行的话,干脆把文件的inode给该了。。。


还是不行的话。。。。嗯。。。。再想想,从底层入手。。。

论坛徽章:
0
6 [报告]
发表于 2010-01-22 19:09 |只看该作者
类Unix的文件系统中,空洞是不占用实际的物理磁盘空间的,即使文件看上去很大很大。。。

论坛徽章:
0
7 [报告]
发表于 2010-01-22 19:16 |只看该作者
unix没遇到过这种情况,linux就遇到过,即是没有实际占用空间,也会有问题

论坛徽章:
0
8 [报告]
发表于 2010-01-25 10:44 |只看该作者

回复 #6 深蓝苹果 的帖子

这个确实的。
如果我的硬盘大小是1G,现在空洞日志文件大小也是1G,但是它实际大小只有512M,那剩下的512M可以使用吗?

论坛徽章:
0
9 [报告]
发表于 2010-01-26 10:05 |只看该作者
应该是可以用的

你是用什么命令查看文件大小的?ls / ll 还是 du ?du才是实际占用磁盘空间的大小吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP