linux7里 journalctl xe查看系统日志的意思, *** 作方法如下:
1、首先在linux中输入不带参数的journalctl,将显示所有的信息,(从旧到新)。
2、-r参数表示反序输出,(从新到旧)。
3、跟踪日志文件,要使用 journalctl 跟踪日志文件 (读取最新条目), 只需在命令后加参数 "-f" 即可。journalctl -f。
4、还可以通过-n 或者 --lines=参数来指定显示的行数大小。
5、journalctl可以显示指定时间段内发生的事件日志,通过since和until 参数来实现。其中日期的格式是“YYYY-MM-DD HH:MM:SS”。
查看某个目录的文件大小并排序 (单位为MB)
清空 /var/log/journal 文件的方法
1、用echo命令,将空字符串内容重定向到指定文件中
echo "" >system.journal
2、journalctl 命令自动维护文件大小
1)只保留近一周的日志
journalctl --vacuum-time=1w
2)只保留500MB的日志
journalctl --vacuum-size=500M
3)直接删除 /var/log/journal/ 目录下的日志文件
rm -rf /var/log/journal/f9d400c5e1e8c3a8209e990d887d4ac1
问题与分析解决
执行 journalctl时报错:Error was encountered while opening journal files: Input/output error
问题分析:日志文件损坏
解决方法:删除之前的日志,并重启 journalctl 服务
然后,再执行 journalctl 限制日志的命令:
systemd程序是进程ID为1的进程,负责以所需的方式初始化系统。 systemd由内核直接启动,信号 9(该信号通常会终止进程)对它不起作用 。systemd统一管理所有 Unit 的启动日志,好处是仅用journalctl一个命令,查看所有日志(内核日志和应用日志)。systemd-journald.service从内核、用户进程、标准输入和系统服务错误收到的日志记录信息,维护结构化的索引日记,并以此方式来收集和储存日志记录数据。systemd-journald服务默认处于启用状态。
显示特定进程 ID 生成的讯息:
# journalctl _PID=1039
显示属于特定用户 ID 的讯息:
# journalctl _UID=1000
仅显示指定服务生成的讯息:
# journalctl _SYSTEMD_UNIT=avahi-daemon.service
如果指定了两个不同的字段,则 仅显示同时与两个表达式匹配的项 :
# journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=1488
如果 两个匹配条件引用了相同的字段,则显示与两个表达式中任意一个匹配的所有项 :
# journalctl _SYSTEMD_UNIT=avahi-daemon.service _SYSTEMD_UNIT=dbus.service
您 可以使用“+”分隔符将两个表达式组合成一个逻辑“OR” 。以下示例将显示来自进程 ID 为 1480 的 Avahi 服务进程的所有讯息,以及来自 D-Bus 服务的所有讯息:
# journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=1480 + _SYSTEMD_UNIT=dbus.service
默认情况下,日记在 /run/log/journal/ 中储存日志数据。由于 /run/ 目录具有易失本性,因此, 在重引导时会丢失日志数据 。要永久保存日志数据,/var/log/journal/ 目录必须存在且具有正确的所有权和权限,如此,systemd-journald 服务便可在其中储存其数据。
以 root 身份编辑journald.conf。
# vi /etc/systemd/journald.conf
将包含Storage= 的行取消注释,并更改为
[...]
[Journal]
Storage=persistent
#Compress=yes
[...]
保存该文件,然后重启 systemd-journald:
systemctl restart systemd-journald
如果将日记日志数据保存到永久位置, 这些数据最多占用/var/log/journal 所在文件系统空间的10% 。如果 /var/log/journal 位于一个 30 GB /var 的分区中,则日记最多会占用 3 GB 磁盘空间。要更改此限制,请更改(并取消注释)SystemMaxUse 选项:
SystemMaxUse=50M
举例:如何找出并修复在 apache2 启动期间 systemd 报告的错误。
尝试启动 apache2 服务:
# systemctl start apache2
Job for apache2.service failed. See 'systemctl status apache2' and 'journalctl -xn' for details.
我们来看看该服务的状态如何:
# systemctl status apache2
apache2.service - The Apache Webserver
Loaded: loaded (/usr/lib/systemd/system/apache2.servicedisabled)
Active: failed (Result: exit-code) since Tue 2014-06-03 11:08:13 CEST7min ago
Process: 11026 ExecStop=/usr/sbin/start_apache2 -D SYSTEMD -DFOREGROUND \
-k graceful-stop (code=exited, status=1/FAILURE)
导致错误的进程 ID 为 11026。
显示与进程 ID 11026 相关的详细讯息:
# journalctl -o verbose _PID=11026
[...]
MESSAGE=AH00526: Syntax error on line 6 of /etc/apache2/default-server.conf:
[...]
MESSAGE=Invalid command 'DocumenttRoot', perhaps misspelled or defined by a module
[...]
修复 /etc/apache2/default-server.conf 中的拼写错误,启动 apache2 服务,然后列显其状态:
# systemctl start apache2 &&systemctl status apache2
apache2.service - The Apache Webserver
Loaded: loaded (/usr/lib/systemd/system/apache2.servicedisabled)
Active: active (running) since Tue 2014-06-03 11:26:24 CEST4ms ago
Process: 11026 ExecStop=/usr/sbin/start_apache2 -D SYSTEMD -DFOREGROUND
-k graceful-stop (code=exited, status=1/FAILURE)
Main PID: 11263 (httpd2-prefork)
Status: "Processing requests..."
CGroup: /system.slice/apache2.service
├─11263 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf -D [...]
├─11280 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf -D [...]
├─11281 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf -D [...]
├─11282 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf -D [...]
├─11283 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf -D [...]
└─11285 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf -D [...]
journalctl:查询systemd日记
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)