dmesg
(display message或者driver message)是Linux系统中用于显示内核启动信息和运行时状态的命令。它会不断地更新,因此可能会占用大量磁盘空间。要清理dmesg
中的旧日志,可以采取以下方法:
dmesg --clear
命令临时清除: 打开终端,输入以下命令来临时清除dmesg
缓冲区:
sudo dmesg --clear
这个操作会立即清除缓冲区中的所有内容,但重启后数据会再次出现。
永久清除: 要实现永久清除,需要修改内核参数。编辑/etc/sysctl.conf
文件,添加或修改以下行:
kernel.printk_ratelimit = 0 kernel.printk_ratelimit_burst = 0
然后应用更改:
sudo sysctl -p
这样设置后,dmesg
将不再限制日志的大小,旧的日志会被自动覆盖。
journalctl
命令(适用于systemd)如果你的系统使用的是systemd
,可以使用journalctl
来管理日志:
查看所有日志:
journalctl
清除所有日志:
sudo journalctl --vacuum-size=0
或者清除特定时间之前的日志:
sudo journalctl --vacuum-time=2weeks
设置日志保留策略: 编辑/etc/systemd/journald.conf
文件,设置日志的最大大小或保留时间:
[Journal] SystemMaxUse=500M SystemKeepFree=100M SystemMaxFileSize=50M SystemMaxFiles=5
然后重启systemd-journald
服务:
sudo systemctl restart systemd-journald
如果你更喜欢直接操作文件,可以找到dmesg
的输出文件并进行清理:
查看日志文件位置: 默认情况下,dmesg
的输出可能会被重定向到/var/log/dmesg
或其他类似的文件中。你可以使用以下命令查找:
ls -l /var/log/dmesg*
清理日志文件: 使用truncate
命令清空文件:
sudo truncate -s 0 /var/log/dmesg
或者使用echo
命令覆盖文件内容:
sudo echo "" > /var/log/dmesg
journalctl
时,确保了解其命令和选项,以免误删重要数据。通过以上方法,你可以有效地管理和清理dmesg
中的旧日志。