logrotate日志切割

143 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第12天,点击查看活动详情

logrotate 作用:实现日志滚动(转储),目的是为了防止文件太大 系统使用方式:每天执行一次logrotate,这是基于计划任务(/etc/cron.daily/logrotate) 滚动方式:可以根据文件大小;也可以每天,每周,每月滚动一次

logrotate都有哪些功能 自动对日志文件进行滚动 压缩日志文件 删除旧的日志文件 发送邮件通知

logrotate有自己的日志文件 /var/lib/logrotate/logrotate.status 记录的是logrotate的滚动日志的滚动记录

配置文件 主:/etc/logrotate.conf 子:/etc/logrotate.d/

配置文件参数详解 daily 指定日志文件每天滚动一次 weekly 指定日志文件每周滚动一次 monthly 指定日志文件每月滚动一次

rotate 90 指定日志文件删除之前转储的次数,0指没有备份,90指保留90个备份

compress 通过gzip压缩转储以后的日志(gzip -d xxx.gz解压)

dateext 文件后缀是日期格式,也就是切割后文件是:xxx.log-20150828.gz

missingok 如果日志不存在则忽略该警告信息

notifempty 如果是空文件的话,不转储

copytruncate 用于还在打开中的日志文件,把当前日志备份并截断(先备份后截断)

dateformat -%Y%m%d.%s # 给归档文件添加后缀名: demo.txt-20200716.1594890921.gz

create 指定当发生滚动后,创建一个新的空的日志文件(权限不变) nocreate 在滚动后,不创建新日志 include /etc/logrotate.d 加载子配置文件 minsize 1M 如果文件的大小值小于1M不会滚动 size 指定当文件的大小到达指定的值的时候,进行滚动 nomail 在滚动的时候,不发送日志

logrotate的命令格式 logrotate [OPTION...] -d, --debug :debug模式,测试配置文件是否有错误。 -f, --force :强制转储文件。 -m, --mail=command :压缩日志后,发送日志到指定邮箱。 -s, --state=statefile :使用指定的状态文件。 -v, --verbose :显示转储过程

logrotate手动执行: 1.在/etc/logrotate.d/目录下面编辑好文件 2.手动执行logrotate /etc/logrotate.d/cmd logrotate定时执行:

cat /etc/logrotate.d/cmd rotate 30 指定日志文件删除之前转储的次数,0指没有备份,30指保留30个备份

minsize 1M 如果文件的大小值小于1M不会滚动

compress 通过gzip压缩转储以后的日志(gzip -d xxx.gz解压)

delaycompress 总是与compress选项一起用,delaycompress选项指示logrotate不要将最近的归档压缩,压缩将在下一次轮循周期进行。这在你或任何软件仍然需要读取最新归档时很有用。

dateext 文件后缀是日期格式,也就是切割后文件是:xxx.log-20221020.gz

missingok 如果日志不存在则忽略该警告信息

notifempty 如果是空文件的话,不转储

copytruncate 用于还在打开中的日志文件,把当前日志备份并截断(先备份后截断)

create 指定当发生滚动后,创建一个新的空的日志文件(权限不变)