journalctl 日志清理

1.限制总大小和单文件大小

编辑 /etc/systemd/journald.conf,在 [Journal] 段落里写入

SystemMaxUse=500M        # 所有日志最多占 500 MB
SystemMaxFileSize=100M   # 单个日志文件最大 100 MB
MaxRetentionSec=30d       # 最多保留 30 天

保存后重启服务

sudo systemctl restart systemd-journald

2.定时任务

把下面两行写进 root 的 crontab(sudo crontab -e

#每天 2 点先按容量删,3 点再按时间删,确保磁盘不被撑爆。
0 2 * * * /usr/bin/journalctl --vacuum-size=500M
0 3 * * * /usr/bin/journalctl --vacuum-time=30d

3.一键手动清理(可选)

立即生效

#一次性把超出 500 MB 或 30 天前的日志全部删除。
sudo journalctl --vacuum-size=500M --vacuum-time=30d
<think>我们正在回答用户关于journalctl命令的问题。根据引用内容,我们可以整合相关信息。用户问题:我想使用journalctl命令查看系统日志请问journalctl命令查看 Linux系统日志根据引用,journalctl是一个用于查询systemd日志的命令,systemd是许多现代Linux发行版的初始化系统和服务管理器。回答结构:1.介绍journalctl命令的基本用途2.常用参数和用法示例3.日志持久化设置(因为引用中提到默认可能是非持久化的)4.日志清理和大小限制注意:引用中提供了多个参数和用法,我们需要整理成用户容易理解的形式。同时,根据系统级指令,我们需要在回答中自然地添加引用标识。另外,按照要求,我们需要在回答结束后生成相关问题。开始回答:</think>### journalctl 命令详解 `journalctl` 是 Linux 系统中用于查询和管理 `systemd` 日志的核心工具。它直接访问由 `systemd-journald` 服务收集的系统日志(包括内核、服务和应用日志),无需依赖传统的 `syslog`。以下是常用操作指南: --- #### **1. 基础查询** | 命令 | 功能 | 示例 | |------|------|------| | `journalctl` | 查看完整系统日志(默认按时间倒序) | `journalctl` | | `journalctl -k` | 仅查看内核日志 | `journalctl -k` | | `journalctl -b` | 查看本次启动的日志 | `journalctl -b` | | `journalctl -f` | 实时追踪最新日志(类似 `tail -f`) | `journalctl -f` | --- #### **2. 按条件过滤** | 命令 | 说明 | 示例 | |------|------|------| | `journalctl -u <服务名>` | 查看指定服务的日志 | `journalctl -u nginx.service` | | `journalctl --since <时间>` | 按时间范围查询 | `journalctl --since "2024-05-20 09:00:00"` | | `journalctl -p <级别>` | 按日志级别筛选(如 `emerg`, `alert`, `err`) | `journalctl -p err` | | `journalctl _PID=<进程ID>` | 按进程 ID 过滤 | `journalctl _PID=1234` | --- #### **3. 日志持久化设置** 默认日志存储在内存(`/run/log/journal/`),重启后丢失。启用持久化存储: ```bash sudo mkdir -p /var/log/journal sudo systemd-tmpfiles --create --prefix /var/log/journal sudo systemctl restart systemd-journald ``` 启用后日志将保存至 `/var/log/journal/`[^2]。 --- #### **4. 日志维护** | 操作 | 命令 | 说明 | |------|------|------| | 清理日志 | `sudo journalctl --vacuum-time=2weeks` | 删除超过 2 周的日志 | | 查看磁盘占用 | `journalctl --disk-usage` | 显示日志占用空间 | | 限制日志大小 | 编辑 `/etc/systemd/journald.conf` | 设置 `SystemMaxUse=500M` 限制磁盘用量[^3] | --- #### **5. 输出格式控制** | 命令 | 效果 | |------|------| | `journalctl -o json-pretty` | JSON 格式化输出 | | `journalctl -n 20` | 仅显示最后 20 条日志 | | `journalctl --no-pager` | 禁用分页(适合脚本调用) | > ⚠️ **注意**:部分发行版(如 Ubuntu Server)需安装 `systemd-journal-remote` 才能使用完整功能。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值