免费注册 查看新帖 |

Chinaunix

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

请教一个日志切割的问题` [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-01-02 12:08 |只看该作者 |倒序浏览
请教一个日志切割的问题`
关于Linux系统中的日志切割,相信大部分的朋友都是利用Logrotate来实现的`
针对Logrotate 我有一点不明白,想请高手指点一二:
Logrotate 是有Cron任务来执行的,执行时间是在每天的4点.我的问题是:
Logrotate 对日志进行切割是,是以什么为依据来判断该日志是否需要被切割的呢?
举个例子说,假如今天的日期是2008年12月11日,我的Squid日志,设置的策略为每个月切割一次,那么,Logrotate下一次是什么时候来切割我的Squid日志的呢?
是以该日志文件的创建时间为依据,还是以该日志文件第一条的记录时间来做为依据的呢?
请各位指教`
谢谢`

论坛徽章:
0
2 [报告]
发表于 2009-01-02 21:48 |只看该作者

回复 #1 yanchun0991 的帖子

如果服务器有大量的用户的话,这些日志文件的大小会很快地增加,在服务器硬盘不是非常充足的情况下,必须采取措施防止日志文件将硬盘撑爆。现代的Linux版本都有一个小程序,名为logrotate,用来帮助用户管理日志文件,它以自己的守护进程工作。logrotate周期性地旋转日志文件,可以周期性地把每个日志文件重命名成一个备份名字,然后让它的守护进程开始使用一个日志文件的新的拷贝。这就是为什么在/var/log/下看到许多诸如maillog、maillog.1、maillog.2、boot.log.1、boot.log.2之类的文件名。它由一个配置文件驱动,该文件是/etc/logroatate.conf,下面是它的一个范例:

# see "man logrotate" for details
# rotate log files weekly
weekly
#以7天为一个周期

# keep 4 weeks worth of backlogs
rotate 4
#每隔4周备份日志文件

# send errors to root
errors root
#发生错误向root报告

# create new (empty) log files after rotating old ones
create
#转完旧的日志文件就创建新的日志文件

# uncomment this if you want your log files compressed
#compress
#指定是否压缩日志文件

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own lastlog or wtmp -- we'll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
rotate 1
}

# system-specific logs may be configured here

参  数:
-?或--help  在线帮助。
-d或--debug  详细显示指令执行过程,便于排错或了解程序执行的情况。
-f或--force  强行启动记录文件维护操作,纵使logrotate指令认为没有需要亦然。
-s<状态文件>或--state=<状态文件>  使用指定的状态文件。
-v或--version  显示指令执行过程。
-usage  显示指令基本用法。

论坛徽章:
9
2015亚冠之阿尔纳斯尔
日期:2015-09-10 16:21:162015亚冠之塔什干火车头
日期:2015-07-01 16:23:022015年亚洲杯之巴勒斯坦
日期:2015-04-20 17:19:46子鼠
日期:2014-11-13 09:51:26未羊
日期:2014-08-28 18:13:36技术图书徽章
日期:2014-02-21 09:30:15酉鸡
日期:2014-01-14 11:12:49天蝎座
日期:2013-12-09 17:56:53平安夜徽章
日期:2015-12-26 00:06:30
3 [报告]
发表于 2009-01-03 08:20 |只看该作者
2楼版主说得很仔细啊

论坛徽章:
0
4 [报告]
发表于 2009-01-03 22:16 |只看该作者

回复 #2 kns1024wh 的帖子

我想二楼的朋友还是没有了解我的真正意思`
我的意思是说,我已经做好了相关的策略,但是,Cron在运行了Logrotate该脚本后,他是怎么判断我的日志文件是否应该被切割呢?
比如说,今天是2009年1月3日,现在我在/etc/logrotate.d/目录下定义了squid的切割策略如下:
(假设该access.log文件为空)
/var/log/squid/access.log{
monthly
compress
create
rotate 12
}
也就是说,该access.log日志文件,在每个月都会被切割一次,但是,下一次执行切割动作的具体是哪一天呢?
是以access.log该文件的创建时间为时间的起点来判断,还是以该文件中的第一条记录的时间为起点来判断,还是以其他的标准为时间的起点来判断的呢?

论坛徽章:
0
5 [报告]
发表于 2009-01-05 09:07 |只看该作者
有了解相关信息的朋友,请指教阿`
急~~~~~~~

论坛徽章:
0
6 [报告]
发表于 2009-01-05 09:24 |只看该作者
第一次执行的时间如果是 本月7号10点,你设置策略month,那下次就是下个月7号10点
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP