[步骤] Linux core dump 的开启 (临时)

步骤一:理解 core dump 的作用

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

步骤二:临时开启 core dump
2.1 设置可生成 core dump 大小的参数
2.1.1 显示当前允许生成 core dump 的大小

# 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 将允许生成 core dump 大小的参数设置为无限大

# 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 设置 core dump 生成的位置

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

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

[内容] Linux 日志消息优先级简介

内容一:系统日志的存放路径

/var/log/messages

内容二:显示系统对应优先级的日志的方法

# grep -i <priority> /var/log/messages

内容三:日志消息的优先级

序号 关键字 优先级 内容
1 EMERG 级别 0 紧急,系统本身已经无法再运行必须马上拯救
2 ALERT 级别 1 警报,系统出现了重大错误必须马上处理的情况
3 CRIT 级别 2 严重,系统出现了严重的情况
4 ERROR 级别 3 错误,系统出现了错误的情况
5 WARNING 级别 4 警告,系统出现了需要警告的情况
6 NOTICE 级别 5 注意,系统出现了需要注意的情况
7 INFO 级别 6 信息,系统出现了一些情况
8 DEBUG 级别 7 调试,系统出现了程序或服务调试的情况

(注意:优先级是按照从紧急到无所谓的顺序进行排列的)

[命令] Linux 命令 journalctl (显示日志)

内容目录:

内容一:journalctl 日志工具的常用用法
1.1 显示包含某 1 个服务名的关键字的日志
1.2 显示某 1 个服务某一个优先级的日志
1.3 显示某 1 个编号的日志
1.4 显示从某 1 个日期开始到某 1 个日期结束的日志

内容二:journalctl 日志工具的使用案例
2.1 案例一:显示最近 5 条重要程度在 ERR 及以上的日志信息
2.2 案例二:显示所有与服务 httpd 相关的日志信息
2.3 案例三:显示前 5 个小时内的日志信息
2.4 案例四:在紧急模式下显示系统日志

具体的内容:

内容一:journalctl 日志工具的常用用法
1.1 显示包含某 1 个服务名的关键字的日志

# journalctl | grep <server name keywords>

1.2 显示某 1 个服务某 1 个优先级的日志

# journalctl -u <service> -p <priority>

1.3 显示某 1 个编号的日志

# journalctl -n <number of messages>

1.4 显示从某 1 个日期开始到某 1 个日期结束的日志

# journalctl --since="<yyyy-mm-dd> <HH:MM:SS>" --until="<yyyy-mm-dd> <HH:MM:SS>"

内容二:journalctl 日志工具的使用案例
2.1 案例一:显示最近 5 条重要程度在 ERR 及以上的日志信息

# journalctl -p err -n 5

2.2 案例二:显示所有与服务 httpd 相关的日志信息

# journalctl -u httpd

2.3 案例三:显示前 5 个小时内的日志信息

# journalctl --since "2019-05-01 14:00" --until "2019-05-01 19:00"

2.4 案例四:在紧急模式下显示系统日志

# journalctl -xb