开启掘金成长之旅!这是我参与「掘金日新计划 · 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 指定当发生滚动后,创建一个新的空的日志文件(权限不变)