日志轮转特别适用于具有固定文件名的日志文件,比如MySQL的出错日志、常规查询日志、慢查询日志等 。Linux系统有一个非常好用的根据logratate可以实现自动轮转,本文介绍它的原理和用法 。
默认情况下,logrotate部署为每天运行的cron job,你可以在目录/etc/cron.daily里找到名为logrotate的配置文件 。那么它是在每天的上面时候运行的呢?打开文件/etc/crontab就知道了,下面是我机器上的情况:
1
2
3
4
5
6
7
8
9
10
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
从上面的配置我们可以知道,/etc/cron.daily是在每天凌晨4:02执行 。也就是说,每天4:02分/etc/cron.daily/logrotate将会自动执行,下面是它的内容:
1
2
3
4
5
6
7
8
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=http://www.ljsggw.cn/internet/$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
从上面我们可以知道,logratate默认的配置文件是/etc/logratate.conf,下面是它的内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
EXITVALUE=http://www.ljsggw.cn/internet/$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
[root@lx202 /etc/cron.daily ]# cat /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# 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 wtmp -- we'll rotate them here
/var/log/wtmp {
monthly
minsize 1M
create 0664 root utmp
rotate 1
}
/var/log/btmp {
missingok
monthly
minsize 1M
create 0600 root utmp
rotate 1
}
推荐阅读
- 对爱情的理解,爱情的理解是什么?
- 冬笋如何采挖
- 香肠派对房卡怎么得
- 男人吃什么水果好
- 看对方微博主页对方知道吗 浏览微博对方知道吗
- 男人喝可乐好吗
- 信鸽的冬管
- 抖音里显示在连线是什么意思 抖音显示对方在连线是什么意思
- 微信通话显示对方忙是什么原因
- 江原道粉底液真假对比