社区
Linux/Unix社区
帖子详情
## linux 下写文件的问题 ##
keios
2002-12-09 10:07:52
在一个软件中需写日志文件,但是要求日志文件的大小不能超过1M字节。
文件中始终保持最近的日志内容。
请问有没有什么方便而高效的实现方法?
我粗略想了一下,只想到这样的方式:
把最近1M字节内容都保存在内存中,以队列的方式,
超过1M新写日志时冲掉前面的内容。
但每次都要重写整个文件,效率极其低下。
...全文
49
5
打赏
收藏
## linux 下写文件的问题 ##
在一个软件中需写日志文件,但是要求日志文件的大小不能超过1M字节。 文件中始终保持最近的日志内容。 请问有没有什么方便而高效的实现方法? 我粗略想了一下,只想到这样的方式: 把最近1M字节内容都保存在内存中,以队列的方式, 超过1M新写日志时冲掉前面的内容。 但每次都要重写整个文件,效率极其低下。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
linuxnewer
2003-01-02
打赏
举报
回复
mark
wwwunix
2003-01-02
打赏
举报
回复
点帖子右边的管理给分。
keios
2002-12-31
打赏
举报
回复
问题已经解决,参考了一些软件的做法,
使用双文件方式,写一个大到一定程度后,将其更名为另一个,
再新建文件继续写,如此反复。
说出来不知道对大家有没有帮助。
可是实在不知道应该怎么给分,呵呵
keios
2002-12-09
打赏
举报
回复
谢谢。
使用辅助工具的方法是可以,但不能保证控制大小,
因为有时会有突发事件使日志大小剧增,很快将硬盘撑爆。
因此还是希望在写时控制大小,但是不知道有没有好的实现方法。
如果实在没有的话,才考虑其他变通的方法。
x86
2002-12-09
打赏
举报
回复
你可以用logrotate,它是这样做的:达到一定大小后自动备份,然后将日志截为0字节。你需要在cron里面运行logrotate,根据需要可以定为一天或者一小时运行logrotate,还可以定制保存几份备份。
apache的日志就是用logrotate来限制大小的。
在/etc/logrotate.d目录下建一个文件,设置自定义的选项,比如apache就有一个httpd文件,内容是:
/var/log/httpd/*log {
missingok
notifempty
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
endscript
}
你man一下logrotate就知道了,这里是另一个例子,保持access.log的5个备份,每个大小限制在100k,如果超过了就发邮件给www@my.org,并重起httpd(发信号给httpd,并非真正重起)
"/var/log/httpd/access.log" /var/log/httpd/error.log {
rotate 5
mail www@my.org
size=100k
sharedscripts
postrotate
/sbin/killall -HUP httpd
endscript
}
要注意的是logrotate并不是实时监控日志,它需要在cron运行,你可以定制运行的频率,一般一天一次就可以了。
【C语言】
Linux
文件
读写
前言
Linux
系统中,一切皆
文件
在
Linux
中,扩展名对
Linux
内核并没有什么实际意义,但是可以用来人为区分不同的
文件
,方便用户使用。 比如 .c 是C
文件
,.h是头
文件
一样,虽然在我们眼中有区别,但是在
Linux
中,他们都属于普通
文件
类型 今天我们来了解一下简单的
文件
I/O读写操作。 一、实现过程 1、创建hello.txt
文件
①、参数1:要打开的
文件
【可以用绝对路径】 ②、参数2:flags ,以下三个比较常用 -—— O_RDWR:以读写的方式打开
文件
-—— O.
linux
内核态读写
文件
linux
内核态读写
文件
linux
的批处理
文件
怎么写,
Linux
下批处理
文件
编写
(1)
linux
下的批处理
文件
,基本就是shell脚本
文件
。1.一个最简单的脚本书写方法为:新建一个
文件
,名字为clean(自己定义的名字),在里面编写rm -fv *.o;ls -al;(可以写一些shell普通命令,命令用分号隔开)2.执行方法(1)在控制台输入:sh clean(2)先给与脚本可执行权限:chmod 777 clean然后直接执行:./clean其他功能以后陆续添加。。。。(...
linux
使用ntfs
文件
系统,让
Linux
平台支持读写NTFS
文件
系统
默认情况下,
Linux
挂载了NTFS
文件
系统,只能读取移动硬盘的内容,而不写,写的过程,提示,“只读
文件
系统”解决方法:使用NTFS-3gNTFS-3g是一个开源软件,它支持在
Linux
下面读写NTFS格式的分区。它非常的快速,同时也很安全。它支持Windows 2000、XP、2003和Vista,并且支持所有的符合POSIX标准的磁盘操作。 ntfs-3g的目的是为了持续的发展,各硬件平台和...
Linux
C 读写
文件
感受下C语言在
Linux
中读写
文件
用法,纯粹兴趣学习记录。 既然要读写
文件
,那肯定要
Linux
系统调用了,就是说利用
Linux
系统提供的API进行函数调用,最终来实现
文件
读写。 通用步骤: 打开
文件
获取
文件
描述符 读写
文件
关闭
文件
Linux
系统提供了两个C函数来实现
文件
读写 ssize_t read(int fd, void *buf, size_t count
Linux/Unix社区
23,218
社区成员
74,542
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章