首页 > 编程知识 正文

linux socket命令,实时查看日志命令

时间:2023-05-05 02:41:07 阅读:19102 作者:4440

参考链接:

sparkdev

1. journalctl公用命令显示所有日志。 默认情况下,仅保存这次启动的日志。)

日志CTL显示内核日志(不显示APP应用程序日志)

journalctl -k查看这次系统启动的日志

日记帐CTL-b显示上次启动的日志(需要更改设置)

在“日志”部分中,将此存储=选项设置为“永久”以启用永久记录。

如果在vim/etc/systemd/journald.conf . [ journal ] storage=永久服务器上启用了保存以前的引导,则journalctl将引导用作分区单元要查看journald知道的引导,请使用以下list-boots选项journalctl :

$ journal CTL-- list-boots-100 d 066 e 11 CB 3412 a 912 CB 804 CEE 123 b5 thu 2018-02-2217336001336047 CST-thu 2018-02-221733333333 6010 CST-thu 2018-02-2217336010336019 CST这在每次启动时显示一行。 第一列是启动偏移,便于浏览启动日记帐CTL。 如果需要绝对引用,则启动ID位于第二列。 退出时列出的两个时间规范允许您指定引导会话引用的时间。

2 .使用时间限制过滤日记中的数据。 例如,要查看上次启动的日志,请使用标记为-1的-b的相对指针。

$ journalctl -b -1显示指定时间的日志

可以使用-since和-until选项过滤任何时间限制。 这些限制显示指定时间之前或之后的条目。

例显示2017年10月30日、18时10分30秒至当前时刻的所有日志信息”

$ journal CTL-- since=' 2017-10-3018336010336030 '此外,journal还可以理解某些相对值和命名的缩写。 例如,大家可以使用“yesterday”、“today”、“tomorrow”或“now”等表达方式。 也可以使用“-”或“”设置相对值,或使用“ago”之前的表示形式。

例如,昨天的日志获取如下:

日志CTLsince yesterday获取从一个时间段到当前时间前一个小时的日志

日志CTL---- since 09336000---- until '1hourago '获取当前时间前20分钟的日志

日记帐CTL-- since ' 20 min ago '获取从一天到一段时间的日志信息

日记账CTL-- since ' 2017-01-10 '--until ' 2017-01-110:00 '3.根据服务或组件选择过滤器- u选项进行过滤

例如,查看httpd服务日志信息

$ journal CTL-uhttpd.service-- logsbeginatthu 2018-02-2217336001336047 CST, endatthu 2018-02-22173360:01 CST---- feb 2217336029336027 centos7. localdomainsystemd [1] 3360 startingtheapachehttpserver . feb 2217336029336027 centos7. local domain httpd [ 1610 ] 3360 ah 00558: httpd : couldnotreliablydeterminetfeb 2217336029336028 centos7. localdomainsystemd [1] 3: startedtheaplytheaplplplpld

按日志CTL-uhttpd.service-- since today进程、用户或组ID

由于某些服务包含多个子进程,因此在使用进程ID实现查询时,还可以使用相关的过滤机制。

此处必须指定_PID字段。 例如,如果PID为8088,则可以输入:

journalctl _PID=8088可能会显示来自特定用户或组的所有日志条目。 这需要使用_UID或_GID。 例如,如果Web服务器在www-data用户下运行,则可以按照这种方式找到用户ID。

$ ID -u www-data33然后,可以返回使用此id过滤的日记账结果。

journal CTL _ uid=33-- sincetodayjournalctl结合-p选项显示特定优先级的信息,以过滤低优先级的信息。

例如,仅显示错误级别以上的日志条目。

$ journalctl -p err -b -- Logs begin

at Thu 2018-02-22 17:01:47 CST, end at Thu 2018-02-22 17:40:02 CST. -- Feb 22 17:09:10 centos7.localdomain kernel: sd 0:0:0:0: [sda] Assuming drive cache: write throu Feb 22 17:09:12 centos7.localdomain kernel: piix4_smbus 0000:00:07.3: SMBus Host Controller not Feb 22 17:09:15 centos7.localdomain rsyslogd[593]: error during parsing file /etc/rsyslog.conf, Feb 22 17:09:47 centos7.localdomain pulseaudio[1232]: [alsa-sink-ES1371/1] alsa-sink.c: ALSA wo Feb 22 17:09:47 centos7.localdomain pulseaudio[1232]: [alsa-sink-ES1371/1] alsa-sink.c: Most li Feb 22 17:09:47 centos7.localdomain pulseaudio[1232]: [alsa-sink-ES1371/1] alsa-sink.c: We were Feb 22 17:09:48 centos7.localdomain spice-vdagent[1274]: Cannot access vdagent virtio channel / lines 1-8/8 (END)

这将只显示被标记为错误、严重、警告或者紧急级别的信息。Journal的这种实现方式与标准syslog信息在级别上是一致的。大家可以使用优先级名称或者其相关量化值。以下各数字为由最高到最低优先级:

0: emerg
1: alert
2: crit
3: err
4: warning
5: notice
6: info
7: debug

例如:

$ journalctl -p 3 -b -- Logs begin at Thu 2018-02-22 17:01:47 CST, end at Thu 2018-02-22 17:50:01 CST. -- Feb 22 17:09:10 centos7.localdomain kernel: sd 0:0:0:0: [sda] Assuming drive cache: write throu Feb 22 17:09:12 centos7.localdomain kernel: piix4_smbus 0000:00:07.3: SMBus Host Controller not Feb 22 17:09:15 centos7.localdomain rsyslogd[593]: error during parsing file /etc/rsyslog.conf, 4. 修改journal显示内容

分页显示(默认)或者改为正常标准输出
分页显示,其中插入省略号以代表被移除的信息,使用–no-full选

journalctl --no-full

. . .

大家也可以要求其显示全部信息,无论其是否包含不可输出的字符。具体方式为添加-a标记:
journalctl -a
默认情况下,journalctl会在pager内显示输出结果以便于查阅。如果大家希望利用文本操作工具对数据进行处理,则可能需要使用标准格式。在这种情况下,我们需要使用–no-pager选项:

journalctl --no-pager

这样就可以用一些工具过滤出自己感兴趣的信息了

5. 输出格式

如果大家需要对journal条目进行处理,则可能需要使用更易使用的格式以简化数据解析工作。幸运的是,journal能够以多种格式进行显示,只须添加-o选项加格式说明即可。
例如,我们可以将journal条目输出为JSON格式:

$ journalctl -b -u httpd -o json { "__CURSOR" : "s=8fa6a8a1c6264c7b938e4d23584ae602;i=149d;b=63f75abbe94c4087bc2cc3cdb3b57100;m=46edf6e6;t=565c9ae1d38f7;x=b3a1eaebceb26d5b", "__REALTIME_TIMESTAMP" : "1519291767535863", "__MONOTONIC_TIMESTAMP" { "__CURSOR" : "s=8fa6a8a1c6264c7b938e4d23584ae602;i=149e;b=63f75abbe94c4087bc2cc3cdb3b57100;m=46f3506d;t=565c9ae22927d;x=91ef081943191196", "__REALTIME_TIMESTAMP" : "1519291767886461", "__MONOTONIC_TIMESTAMP" { "__CURSOR" :

以下为可用于显示的各类格式:

cat: 只显示信息字段本身。 export: 适合传输或备份的二进制格式。 json: 标准JSON,每行一个条目。 json-pretty: JSON格式,适合人类阅读习惯。 json-sse: JSON格式,经过打包以兼容server-sent事件。 short: 默认syslog类输出格式。 short-iso: 默认格式,强调显示ISO 8601挂钟时间戳。 short-monotonic: 默认格式,提供普通时间戳。 short-precise: 默认格式,提供微秒级精度。 verbose: 显示该条目的全部可用journal字段,包括通常被内部隐藏的字段。

活动进程监控
Journalctl命令还能够帮助管理员以类似于tail的方式监控活动或近期进程。这项功能内置于journalctl当中,允许大家在无需借助其它工具的前提下实现访问。
显示近期日志
要显示特定数量的记录,大家可以使用-n选项,类似为tail -n功能。默认情况下只显示最后发生的10条日志,但是也可以指定。
例如:

$ journalctl -n20 -- Logs begin at Thu 2018-02-22 17:01:47 CST, end at Thu 2018-02-22 18:20:01 CST. -- Feb 22 17:40:01 centos7.localdomain systemd[1]: Started Session 5 of user root. Feb 22 17:40:02 centos7.localdomain systemd[1]: Starting Session 5 of user root. 6. 追踪日志

要主动追踪当前正在编写的日志,大家可以使用-f标记。同样功能类似为tail -f,只要不终止,会一直监控

$ journalctl -f 7. Journal维护

存储这么多数据当然会带来巨大压力,因此我们还需要了解如何清理部分陈旧日志以释放存储空间。
查看当前日志占用磁盘的空间的总大小

$ journalctl --disk-usage Archived and active journals take up 8.0M on disk.

指定日志文件最大空间

journalctl --vacuum-size=1G

指定日志文件保存多久

journalctl --vacuum-time=1years 8. journalctl相关配置

大家可以配置自己的服务器以限定journal所能占用的最高容量。要实现这一点,我们需要编辑/etc/systemd/journald.conf文件。
以下条目可用于限定journal体积的膨胀速度:

SystemMaxUse=: 指定journal所能使用的最高持久存储容量。 SystemKeepFree=: 指定journal在添加新条目时需要保留的剩余空间。 SystemMaxFileSize=: 控制单一journal文件大小,符合要求方可被转为持久存储。 RuntimeMaxUse=: 指定易失性存储中的最大可用磁盘容量(/run文件系统之内)。 RuntimeKeepFree=: 指定向易失性存储内写入数据时为其它应用保留的空间量(/run文件系统之内)。 RuntimeMaxFileSize=: 指定单一journal文件可占用的最大易失性存储容量(/run文件系统之内)。 通过设置上述值,大家可以控制journald对服务器空间的消耗及保留方式。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。