[模板] Linux 日志保存时间策略的配置模板 ( 以 messages 日志的 logrotate 配置模板为例)

步骤一:将 messages 日志的 logrotate 配置文件分离出来

# vim /etc/logrotate.d/syslog

删除以下内容:

......
/var/log/messages
......

步骤二:创建 messages 日志的 logrotate 配置文件

# vim /etc/logrotate.d/messages

创建以下内容:

/var/log/messages
/var/log/secure
/var/log/maillog
{
    delaycompress
    dateext
    rotate 5
    missingok
    notifempty
    weekly
    create 755 root root
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}


补充:这里以:
1) 影响的日志文件有 /var/log/messages、/var/log/secure 和 /var/log/maillog (/var/log/messages /var/log/secure /var/log/maillog)
2) 备份的日志文件以日期的形式结尾 (dateext)
3) 对备份的日志文件进行压缩 (delaycompress,默认使用 gz 格式进行压缩)
4) 备份的日志文件保留 5 份 (rotate 5)
5) 如果现有日志文件丢失,则不报错直接生成新的日志文件 (missingok)
6) 如果现有日志文件是空文件,则不再对日志文件进行备份 (notifempty)
7) 每周将现在的日志文件进行备份并生成新的日志文件 (weekly)
8) 日志文件权限是 0755 所属主是 root 所属组是 root (create 755 root root)
9) 在所有的现在的日志文件都备份并生成新的日志文件以后再统一执行脚本(sharedscripts,如果没有这个参数则每个日志文件在完成了这一动作后会各自单独执行脚本)
为例

步骤二:让创建的 messages 日志的 logrotate 配置文件生效

# systemctl restart rsyslog

[步骤] Linux Kdump 的开启 (临时版)

步骤一:理解 Kdump 的作用

开启 core dump 之后,如果出现了 C 语言程序的 crash,则会将 crash 的结果记录到一个文件里

步骤二:临时开启 Kdump

2.1 设置可生成 Kdump 大小的参数

2.1.1 显示当前允许生成 Kdump 的大小
# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 31722
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 31722
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
2.1.2 将允许生成 Kdump 大小的参数设置为无限大
# ulimit -c unlimited
2.1.3 确认修改结果
# ulimit -a
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 31722
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 31722
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

2.2 设置 Kdump 生成的位置

# sysctl -w kernel.core_pattern=/tmp/corefile/core-%e-%p

步骤三:此时如果有 C 语言的程序 crash 了,则会被自动记录