logrotate 是一个日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件,可以称之为: "转储"。
可以根据大小/时间等,该过程一般通过 cron 程序来执行。
安装logrotate
yum -y install logrotate
rpm -ql logrotate
logrotate 配置文件
# 主要参数文件,可以理解为全局配置文件
/etc/logrotate.conf
# 该目录里面的所有数据配置都会被主动读入/etc/logrotate.conf 当中来进行
# 在/etc/logrotate.d/ 中的配置文件,如果没有指定一些详细的设置,则以 /etc/logrotate.conf 的规定来指定为默认值
/etc/logrotate.d/
创建切割配置文件
cd /etc/logrotate.d/
# 复制一份原有的,然后根据需求来修改配置属性
cp -a oldfile log-file
vi log-file
配置简介
/var/test/storage/logs/laravel.log {
size=30M
missingok
rotate 31
compress
delaycompress
notifempty
copytruncate
dateext
create 0644 www www
}
su banboo banboo 是 su <user> <group >
missingok 在日志轮循期间,任何错误将被忽略,例如“文件无法找到”之类的错误。
compress 通过gzip 压缩转储以后的日志 (在轮循任务完成后,已轮循的日志将使用gzip进行压缩)
nocompress 不需要压缩时,用这个参数
rotate 31 表示保留31天的备份文件(将存储31个归档日志。对于第32个归档,时间最久的归档将被删除)
notifempty 如果日志文件为空,轮循不会进行
copytruncate 表示先复制log文件的内容,然后再清空
dateext 表示备份的日志文件后缀格式为YYYYMMDD(切换后的日志文件会附加上一个短横线和YYYYMMDD格式的日期,没有这个配置项会附加一个小数点加一个数字序号)
create 以指定的权限创建全新的日志文件
运行 logrotate
# 为/etc/lograte.d/ 下的所有日志切割配置
logrotate /etc/logrotate.conf
# 某个特定的配置调用logrotate,执行一次切割任务测试
logrotate -vf /etc/logrotate.d/log-file
# -f:选项来强制logrotate轮循日志文件
# -v:参数提供了详细的输出
# 设置定时任务
00 00 * * * /usr/sbin/logrotate -vf /etc/logrotate.d/log-file &>/dev/null