|
| 1 | +journalctl |
| 2 | +=== |
| 3 | + |
| 4 | +检索 systemd 日志,是 CentOS 7 才有的工具。 |
| 5 | + |
| 6 | +### 语法 |
| 7 | + |
| 8 | +```shell |
| 9 | +journalctl [OPTIONS...] [MATCHES...] |
| 10 | +``` |
| 11 | + |
| 12 | +### 选项 |
| 13 | + |
| 14 | +```shell |
| 15 | +Flags: |
| 16 | + --system # 显示系统日志 |
| 17 | + --user # 显示当前用户的用户日志 |
| 18 | +-M --machine=CONTAINER # 在本地容器上操作 |
| 19 | +-S --since=DATE # 显示不早于指定日期的条目 |
| 20 | +-U --until=DATE # 显示不晚于指定日期的条目 |
| 21 | +-c --cursor=CURSOR # 显示从指定光标开始的条目 |
| 22 | + --after-cursor=CURSOR # 在指定光标后显示条目 |
| 23 | + --show-cursor # 在所有条目之后打印光标 |
| 24 | +-b --boot[=ID] # 显示当前启动或指定启动 |
| 25 | + --list-boots # 显示有关已记录引导的简洁信息 |
| 26 | +-k --dmesg # 显示当前启动的内核消息日志 |
| 27 | +-u --unit=UNIT # 显示指定单元的日志 |
| 28 | +-t --identifier=STRING # 显示具有指定系统日志标识符的条目 |
| 29 | +-p --priority=RANGE # 显示具有指定优先级的条目 |
| 30 | +-e --pager-end # 在pager中立即跳转到末尾 |
| 31 | +-f --follow # 关注期刊 |
| 32 | +-n --lines[=INTEGER] # 要显示的日志条目数 |
| 33 | + --no-tail # 显示所有行,即使在跟随模式下 |
| 34 | +-r --reverse # 首先显示最新的条目 |
| 35 | +-o --output=STRING # 更改日志输出模式 (short, short-iso, |
| 36 | + short-precise, short-monotonic, verbose, |
| 37 | + export, json, json-pretty, json-sse, cat) |
| 38 | +--utc # 以协调世界时 (UTC) 表示的时间 |
| 39 | +-x --catalog # 在可用的情况下添加消息说明 |
| 40 | + --no-full # Ellipsize 字段 |
| 41 | +-a --all # 显示所有字段,包括长的和不可打印的 |
| 42 | +-q --quiet # 不显示特权警告 |
| 43 | + --no-pager # 不要将输出通过管道传输到寻呼机 |
| 44 | +-m --merge # 显示所有可用期刊的条目 |
| 45 | +-D --directory=PATH # 显示目录中的日志文件 |
| 46 | + --file=PATH # 显示日志文件 |
| 47 | + --root=ROOT # 对根目录下的目录文件进行操作 |
| 48 | + --interval=TIME # 更改 FSS 密封键的时间间隔 |
| 49 | + --verify-key=KEY # 指定FSS验证密钥 |
| 50 | + --force # 使用 --setup-keys 覆盖 FSS 密钥对 |
| 51 | + |
| 52 | +Commands: |
| 53 | +-h --help # 显示此帮助文本 |
| 54 | + --version # 显示包版本 |
| 55 | +-F --field=FIELD # 列出指定字段的所有值 |
| 56 | + --new-id128 # 生成新的 128 位 ID |
| 57 | + --disk-usage # 显示所有日志文件的总磁盘使用情况 |
| 58 | + --vacuum-size=BYTES # 将磁盘使用量减少到指定大小以下 |
| 59 | + --vacuum-time=TIME # 删除早于指定日期的日志文件 |
| 60 | + --flush # 将所有日志数据从 /run 刷新到 /var |
| 61 | + --header # 显示期刊头信息 |
| 62 | + --list-catalog # 显示目录中的所有消息 ID |
| 63 | + --dump-catalog # 在消息目录中显示条目 |
| 64 | + --update-catalog # 更新消息目录数据库 |
| 65 | + --setup-keys # 生成新的 FSS 密钥对 |
| 66 | + --verify # 验证日志文件的一致性 |
| 67 | +``` |
| 68 | + |
| 69 | +### 实例 |
| 70 | + |
| 71 | +**过滤输出** |
| 72 | + |
| 73 | +`journalctl` 可以根据特定字段过滤输出。如果过滤的字段比较多,需要较长时间才能显示出来。 |
| 74 | + |
| 75 | +示例: |
| 76 | + |
| 77 | +显示本次启动后的所有日志: |
| 78 | + |
| 79 | +```shell |
| 80 | +journalctl -b |
| 81 | +``` |
| 82 | + |
| 83 | +不过,一般大家更关心的不是本次启动后的日志,而是上次启动时的(例如,刚刚系统崩溃了)。可以使用 -b 参数: |
| 84 | + |
| 85 | +- `journalctl -b -0` 显示本次启动的信息 |
| 86 | +- `journalctl -b -1` 显示上次启动的信息 |
| 87 | +- `journalctl -b -2` 显示上上次启动的信息 `journalctl -b -2` |
| 88 | + |
| 89 | +只显示错误、冲突和重要告警信息 |
| 90 | + |
| 91 | +```shell |
| 92 | +journalctl -p err..alert |
| 93 | +``` |
| 94 | + |
| 95 | +也可以使用数字, `journalctl -p 3..1`。如果使用单个 number/keyword,则 `journalctl -p 3` - 还包括所有更高的优先级。 |
| 96 | + |
| 97 | +显示从某个日期 ( 或时间 ) 开始的消息: |
| 98 | + |
| 99 | +```shell |
| 100 | +journalctl --since="2012-10-30 18:17:16" |
| 101 | +``` |
| 102 | + |
| 103 | +显示从某个时间 ( 例如 20分钟前 ) 的消息: |
| 104 | + |
| 105 | +```shell |
| 106 | +journalctl --since "20 min ago" |
| 107 | +``` |
| 108 | + |
| 109 | +显示最新信息 |
| 110 | + |
| 111 | +```shell |
| 112 | +journalctl -f |
| 113 | +``` |
| 114 | + |
| 115 | +显示特定程序的所有消息: |
| 116 | + |
| 117 | +```shell |
| 118 | +journalctl /usr/lib/systemd/systemd |
| 119 | +``` |
| 120 | + |
| 121 | +显示特定进程的所有消息: |
| 122 | + |
| 123 | +```shell |
| 124 | +journalctl _PID=1 |
| 125 | +``` |
| 126 | + |
| 127 | +显示指定单元的所有消息: |
| 128 | + |
| 129 | +```shell |
| 130 | +journalctl -u man-db.service |
| 131 | +``` |
| 132 | + |
| 133 | +显示内核环缓存消息r: |
| 134 | + |
| 135 | +```shell |
| 136 | +journalctl -k |
| 137 | +``` |
| 138 | + |
| 139 | +**手动清理日志** |
| 140 | + |
| 141 | +`/var/log/journal` 存放着日志, `rm` 应该能工作. 或者使用 `journalctl`, |
| 142 | + |
| 143 | +例如: |
| 144 | + |
| 145 | +清理日志使总大小小于 100M: |
| 146 | + |
| 147 | +```shell |
| 148 | +journalctl --vacuum-size=100M |
| 149 | +``` |
| 150 | + |
| 151 | +清理最早两周前的日志. |
| 152 | + |
| 153 | +```shell |
| 154 | +journalctl --vacuum-time=2weeks |
| 155 | +``` |
0 commit comments