Toggle navigation
主页
English
K8S
Golang
Guitar
About Me
归档
标签
Welcome to Sanger's Blog!
CoreOS配置每小时日志轮转
无
2023-03-21 17:26:39
112
0
0
sanger
[TOC] # CoreOS 默认 logrotate问题 默认的`logrotate`是`daily`的,在`/usr/`下是无法更改的,故只能停止了默认`logrotate timer`,然后新建新的`timer`来改变`logrotate`的周期 ``` systemctl stop logrotate.timer ``` ``` $ cat /usr/lib/systemd/system/logrotate.service [Unit] Description=Rotate and Compress System Logs [Service] ExecStart=/usr/sbin/logrotate /usr/share/logrotate/logrotate.conf ``` ``` $ cat /usr/lib/systemd/system/logrotate.timer [Unit] Description=Daily Log Rotation [Timer] OnCalendar=daily AccuracySec=1h Persistent=true ``` # 演练配置 ``` logrotate -d /etc/logrotate.d/test ``` ``` $ logrotate --help Usage: logrotate [OPTION...] <configfile> -d, --debug Don't do anything, just test (implies -v) -f, --force Force file rotation -m, --mail=command Command to send mail (instead of `/bin/mail') -s, --state=statefile Path of state file -v, --verbose Display messages during rotation -l, --log=STRING Log file or 'syslog' to log to syslog --version Display version information Help options: -?, --help Show this help message --usage Display brief usage message ``` # logrotate-hourly.service ``` $ cat logrotate-hourly.service [Unit] Description=logrotate hourly executer [Service] Type=simple ExecStart=/usr/sbin/logrotate /etc/logrotate.d/test ``` # logrotate-hourly.timer ``` $ cat logrotate-hourly.timer [Unit] Description=logrotate kube config every hour [Timer] Unit=logrotate-hourly.service OnUnitActiveSec=1h [Install] WantedBy=multi-user.target ``` > 针对上面两个文件`logrotate-hourly.service`和`logrotate-hourly.timer`,个人觉得是配套的一个是执行体,一个是触发器(定时器),但是单独去 `systemctl restart logrotate-hourly.service`并未轮转日志,通过设置`timer`才实现了轮转。 `timer`也可以设置为每分钟运行,修改成`OnUnitActiveSec=1m`后重启`timer`即可 # logrotate子配置 ``` $ cat /etc/logrotate.d/test /data/logs/*.log { rotate 5 copytruncate missingok notifempty compress size 100M hourly dateext dateformat -%Y%m%d-%s create 0644 root root } ``` # logrotate配置参数说明 - **create 0644 nginx root**: 以指定的权限创建全新的日志文件,同时logrotate也会重命名原始日志文件 - **daily**:日志文件将按日轮循 - **rotate 10**: 一次将存储10个归档日志。对于第11个归档,时间最久的归档将被删除 - **missingok**: 在日志轮循期间,任何错误将被忽略,例如“文件无法找到”之类的错误。 - **notifempty**: 如果日志文件为空,轮循不会进行。 - **compress**: 在轮循任务完成后,已轮循的归档将使用gzip进行压缩 - **size**: 当指定的文件大小大于设定的值时就开始轮转 - **postrotate/endscript**: 在所有其它指令完成后,postrotate和endscript里面指定的命令将被执行 # 参考 https://man7.org/linux/man-pages/man5/systemd.timer.5.html https://man7.org/linux/man-pages/man7/systemd.time.7.html https://www.ruanyifeng.com/blog/2018/03/systemd-timer.html https://my.oschina.net/gammatimes/blog/3161027
上一篇:
nginx 配置详解
下一篇:
gogs git clone 报错 Peer's Certificate issuer is not recognized
0
赞
112 人读过
新浪微博
微信
更多分享
腾讯微博
QQ空间
人人网
文档导航