【Linux】了解文件的inode元信息,以及日志分析

news2024/10/7 2:18:43

目录

一、inode表结构,以及元信息

1、了解inode信息有哪些

2、关于inode表的说明

Linux中访问文件的过程:

3、硬连接与软连接的区别,(请看前面,写过的)

二、文件系统的备份与恢复

三、几种常见的日志

四、系统日志管理

1、根据信息的优先级别重要程度,设置日志消息的不同级别

2、rsyslog配置文件的格式

实操1、修改/etc/rsyslog.cong和/etc/ssh/sshd_config配置文件,将ssh服务的日志单独生成,便于查看

实操2、修改/etc/rsyslog.cong配置文件,打开tcp或udp端口,共享传输日志信息

五、journalctl日志管理

案例说明


一、inode表结构,以及元信息

1、了解inode信息有哪些

inode表的元信息有哪些
inode号相当于文件的身份证号
文件类型七大文件类型
文件权限读、写、执行
文件属主uid
文件属组gid
文件硬链接数指向文件名路径名称的个数
该文件占块的大小块大小
该文件的实际大小实际大小
文件的三种时间atime访问时间,mtime修改时间,ctime元信息变化时间
指向磁盘上文件的数据块指针 指向真实数据的块(可以理解为坐标)
有关文件的其他数据 不知道啥意思,理解为间接指针等等

查看inode号的命令方法:ls -i和stat

关于文件的三种时间戳

最近访问atime:最后一次查看文件(cat、vim、more、less、head、tail等)
最近更改mtime:最近更改文件内容的时间,注意:更改完内容之后,ctime也会改变(内容改变)
最近改动ctime:最近更改文件元信息的时间,比如改变权限等(mtime变化ctime也会跟着变)

2、关于inode表的说明

①文件是存储在硬盘上的,硬盘的最小存储单位叫做“扇区”(sector),每个扇区存储512字节。 一般连续八个扇区组成一个"块”(block),一个块是4K大小,是文件存取的最小单位。操作系统读取硬盘的时候,是一次性连续读取多个扇区,即一个块一个块的读取的。4k一读,8个扇区一读文件数据包括实际数据与元信息(类似文件属性)。文件数据存储在“块"中,存储文件元信息(比如文件的创建者、创建日期、文件大小、文件权限等)的区域就叫做inode表。 因此,一个文件必须占用一个inode,并且至少占用一个block。

②du 显示inode不包含文件名。文件名是存放在目录文件夹当中的。Linux 系统中一切皆文件,因此目录也是一种文件。

③每个inode都有一个号码,操作系统用inode号码来识别不同的文件。Linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称,文件名和inode号码是一一对应关系,每个inode号码对应一个或多个文件名。

④同一设备上,不可能出现相同inode号(不同设备可以);inode号的数量与硬盘分区大小有关,可以使用df -i查看,inode号是有限制的!!

Linux中访问文件的过程:

当用户在Linux系统中试图访问一个文件时,系统会先根据文件名去查找它对应的inode号码:通过inode号码,获取inode信息;根据inode信息,看该用户是否具有访问这个文件的权限;如果有,就指向相对应的数据block,并读取数据。

3、硬连接与软连接的区别,(请看前面,写过的)

 硬连接软连接
本质与源是相同的文件与源不是一个文件
inode号与源相同与源不同
文件类型与源相同,不是l与源不同,为l
目录不能对目录创建可以对目录创建
文件大小与源文件一样文件大小与源路径字符有关
修改内容修改源一起生效修改源一起生效
删除删除源无影响删除源失效
权限修改权限一起生效原本权限就不同,修改权限不一起生效
连接数连接数一样,有多少个硬连接就是连接数与源连接数不一样,软连接始终为1

二、文件系统的备份与恢复

ext4文件不能备份和恢复,xfs文件系统可以恢复

[root@localhost ~]# xfsdump -f /opt/dump_sdb2        /dev/sdb2           [-L dump_sdb1 -M sdb1]
#                    命令   指定备份目录路径和文件名      分区                 打上标记 现在不打后面也要输入
#使用 xfsdump 命令备份整个分区  并打上标记


[root@localhost opt]#xfsrestore -f /opt/dump_sdb1 /data/
# 使用 bak文件 将数据恢复到 /data 下

[root@localhost opt]#ls /data/
passwd  test

这个之前写过了,请查看这篇文章https://blog.csdn.net/liu_xueyin/article/details/133709038?spm=1001.2014.3001.5502

三、几种常见的日志

日志类型日志内容
/var/log/messages系统中的大部分信息,配置文件中是info级别以内的日志文件
它是核心系统日志文件,其中包含了系统启动时的引导信息,以及系统运行时的其他状态消息。
I/O 错误、网络错误和其他系统错误都会记录到此文件中。其他信息,比如某个人的身份切换为 root,已及用户自定义安装软件的日志,也会在这里列出。
/var/log/secure记录验证和授权方面的倍息,只要涉及账户和密码的程序都会记录,比如系统的登录、ssh的登录、su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中
/var/log/btmp登录失败的日志,二进制文件,不可查看,用lastb命令查看
/var/log/wtmp永久记录所有用户的登陆、注销信息,同时记录系统的启动、重启、关机事件。同样,这个文件也是二进制文件.不能直接用Vi查看,而要使用last命令查看
/var/log/lastlog记录系统中所有用户最后一次的登录时间的曰志。这个文件也是二进制文件.不能直接用Vi 查看。而要使用lastlog命令查看
/var/tun/ulmp记录当前已经登录的用户的信息。这个文件会随着用户的登录和注销而不断变化,只记录当前登录用户的信息。同样,这个文件不能直接用Vi查看,而要使用w、who、users等命令查看
/var/log/dmesg设备日志信息,记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息
/var/log/boot.log系统启动的日志信息
/var/log/anaconda系统安装时候的日志信息
/var/log/cron   记录与系统定时任务相关的曰志(crontab和at相关)
/var/log/maillog   邮件日志记录邮件信息的曰志

四、系统日志管理

1、根据信息的优先级别重要程度,设置日志消息的不同级别

级别级别英文全称什么意思
0EMERG(紧急)emerge会导致主机系统不可用的情况。
1ALERT(警告)alert必须马上采取措施解决的问题。
2CRIT(严重)critic比较严重的情况。
3ERR(错误)error运行出现错误。
4WARNING(提醒)warning可能影响系统功能,需要提醒用户的重要事件。 
5NOTICE(注意)notice不会影响正常功能,但是需要注意的事件。 
6INFO(信息)information一般信息。 
7DEBUG(调试)debug程序或系统调试信息等

2、rsyslog配置文件的格式

rsyslog  相关文件
- 程序包:rsyslog
- 主程序:/usr/sbin/rsyslogd
- CentOS 6:/etc/rc.d/init.d/rsyslog {start|stop|restart|status}
- CentOS 7,8:/usr/lib/systemd/system/rsyslog.service
- 配置文件:/etc/rsyslog.conf(主),/etc/rsyslog.d/*.conf(子)
- 库文件: /lib64/rsyslog/*.so 

/etc/rsyslog.conf配置文件格式:由三部分组成

- MODULES:相关模块配置
- GLOBAL DIRECTIVES:全局配置
- RULES:日志记录相关的规则配置

服务名称说 明
auth(LOG AUTH)安全和认证相关消息 (不推荐使用authpriv替代)
authpriv(LOG_AUTHPRIV)安全和认证相关消息(私有的)
cron (LOG_CRON)系统定时任务cront和at产生的日志
daemon (LOG_DAEMON)与各个守护进程相关的曰志
ftp (LOG_FTP)ftp守护进程产生的曰志
kern(LOG_KERN)内核产生的曰志(不是用户进程产生的)
Iocal0-local7为本地使用预留的服务(可以自定义的facility)
lpr (LOG_LPR)打印产生的日志
mail (LOG_MAIL)邮件收发信息
news (LOG_NEWS)与新闻服务器相关的日志
syslog (LOG_SYSLOG)存syslogd服务产生的曰志信息(虽然服务名称己经改为reyslogd,但是很多配罝依然沿用了 syslogd服务的,所以这里并没有修改服务名称)
user (LOG_USER)用户等级类别的日志信息
uucp (LOG_UUCP>uucp子系统的日志信息,uucp是早期Linux系统进行数据传递的协议,后来 也常用在新闻组服务中

实操1、修改/etc/rsyslog.cong和/etc/ssh/sshd_config配置文件,将ssh服务的日志单独生成,便于查看

ssh服务是远程连接,该应用程序没有独立的日志文件,涉及安全认证,存放在/var/log/secure      

先测试一下,两台主机均关闭安全机制和防火墙,进行ssh  ip地址远程连接

[root@localhost ~]#tail -f /var/log/secure
#查看ssh服务的日志位置

为了把日志文件独立成出来,一起来修改两个配置文件     

分别是:
服务的配置文件/etc/ssh/sshd_config
日志系统的配置文件/etc/rsyslog.conf

[root@localhost ~]#vim /etc/ssh/sshd_config
#修改ssh配置文件,32下一行添加自己的自定义
32 #SyslogFacility AUTHPRIV
33 SyslogFacility local5

这里需要注意:rsyslog的自定义模块只有local 0-7,编号和其他字母都不可以!!

[root@localhost ~]#vim /etc/rsyslog.conf
#76 行添加自己的文件位置
 local5.*           /data/ssh.log  ##具体日志位置可以自定义,看访问需求

[root@localhost log]#systemctl restart rsyslog.service sshd
#修改完配置文件,一定要重启两个服务

[root@localhost ~]tail -f /data/ssh.log

用另一台主机进行ssh  ip地址远程连接,测试一下

验证日志信息

实操2、修改/etc/rsyslog.cong配置文件,打开tcp或udp端口,共享传输日志信息

#开启日志的远程传输功能在192.168.20.18主机上备份192.168.20.10的基础日志

环境需求,需要两台主机关闭安全机制,防火墙,以及同时都打开tcp的514端口(我这里只实验了tcp的514端口)

#关于主机192.168.20.18,在/etc/rsyslog.conf配置文件中,打开tcp的514端口,并重新加载服务

[root@localhost ~]#vim /etc/rsyslog.conf 
#打开19 20 行
19 $ModLoad imtcp
20 $InputTCPServerRun 514
[root@localhost ~]#ss -ntap |grep 514
#查看514端口是否打开

[root@localhost ~]systemctl restart rsyslog.service

##关于主机192.168.20.10,在/etc/rsyslog.conf配置文件中,打开tcp的514端口,并且共享日志信息至服务端,并重新加载服务
[root@testhost ~]#vim /etc/rsyslog.conf 
#打开19 20 行
19 $ModLoad imtcp
20 $InputTCPServerRun 514
[root@testhost ~]#ss -ntap |grep 514
#查看514端口是否打开

[root@testhost ~]#vim /etc/rsyslog.conf 
#修改配置文件
54 *.info;mail.none;authpriv.none;cron.none     /var/log/messages
#复制54行                                       改成ip地址
55 *.info;mail.none;authpriv.none;cron.none     @@192.168.91.100
                                                #两个@ 代表使用  tcp  一个代表udp
如果修改 的是udp  @192.168.91.100
如果要想指定端口  @192.168.91.100:端口号

[root@testhost ~]systemctl restart rsyslog.service

[root@testhost ~]#logger "this is test log from 192.168.91.101 2"
#测试,写日志进去

验证查看
主机192.168.20.18:
[root@localhost ~]#tail -f /var/log/messages

主机192.168.20.10查看自己的
[root@testhost data]#tail -f /var/log/messages

五、journalctl日志管理

journalctl命令可以对systemd管理的服务日志进行统一收集管理,

CentOS 7 以后版,利用Systemd 统一管理所有 Unit 的启动日志。带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志)。

注意两个选项:

配置文件/etc/systemd/journald.conf

命令相关选项:

--no-full, --full, -l
   如果字段内容超长则以省略号(...)截断以适应列宽。
   默认显示完整的字段内容(超长的部分换行显示或者被分页工具截断)。
   老旧的 -l/--full 选项 仅用于撤销已有的 --no-full 选项,除此之外没有其他用处。
-a, --all
   完整显示所有字段内容, 即使其中包含不可打印字符或者字段内容超长。
-f, --follow
   只显示最新的日志项,并且不断显示新生成的日志项。 此选项隐含了 -n 选项。
-e, --pager-end
   在分页工具内立即跳转到日志的尾部。 此选项隐含了 -n1000
   以确保分页工具不必缓存太多的日志行。 不过这个隐含的行数可以被明确设置的 -n
   选项覆盖。 注意,此选项仅可用于 less(1) 分页器。
-n, --lines=
   限制显示最新的日志行数。 --pager-end 与 --follow 隐含了此选项。
   此选项的参数:若为正整数则表示最大行数; 若为 "all" 则表示不限制行数;
   若不设参数则表示默认值10行。
--no-tail
   显示所有日志行, 也就是用于撤销已有的 --lines= 选项(即使与 -f 连用)。
-r, --reverse
   反转日志行的输出顺序, 也就是最先显示最新的日志。
-o, --output=
   控制日志的输出格式。 可以使用如下选项:
   short
       这是默认值, 其输出格式与传统的 syslog[1] 文件的格式相似, 每条日志一行。
   short-iso
       与 short 类似,只是将时间戳字段以 ISO 8601 格式显示。
   short-precise
       与 short 类似,只是将时间戳字段的秒数精确到微秒级别。
   short-monotonic
       与 short 类似,只是将时间戳字段的零值从内核启动时开始计算。
   short-unix
       与 short 类似,只是将时间戳字段显示为从"UNIX时间原点"(1970-1-1 00:00:00
       UTC)以来的秒数。 精确到微秒级别。
   verbose
       以结构化的格式显示每条日志的所有字段。
    export
       将日志序列化为二进制字节流(大部分依然是文本) 以适用于备份与网络传输(详见
       Journal Export Format[2] 文档)。
   json
       将日志项按照JSON数据结构格式化, 每条日志一行(详见 Journal JSON Format[3]
       文档)。
   json-pretty
       将日志项按照JSON数据结构格式化, 但是每个字段一行, 以便于人类阅读。
   json-sse
       将日志项按照JSON数据结构格式化,每条日志一行,但是用大括号包围, 以适应
       Server-Sent Events[4] 的要求。
    cat
       仅显示日志的实际内容, 而不显示与此日志相关的任何元数据(包括时间戳)。
--utc
   以世界统一时间(UTC)表示时间
--no-hostname
   不显示来源于本机的日志消息的主机名字段。 此选项仅对 short
   系列输出格式(见上文)有效。
-x, --catalog
   在日志的输出中增加一些解释性的短文本, 以帮助进一步说明日志的含义、
   问题的解决方案、支持论坛、 开发文档、以及其他任何内容。
   并非所有日志都有这些额外的帮助文本, 详见 Message Catalog Developer
   Documentation[5] 文档。
   注意,如果要将日志输出用于bug报告, 请不要使用此选项。
-q, --quiet
   当以普通用户身份运行时, 不显示任何警告信息与提示信息。 例如:"-- Logs begin at
   ...", "-- Reboot --"
-m, --merge
   混合显示包括远程日志在内的所有可见日志。
-b [ID][±offset], --boot=[ID][±offset]
   显示特定于某次启动的日志, 这相当于添加了一个 "_BOOT_ID=" 匹配条件。
   如果参数为空(也就是 ID 与 ±offset 都未指定), 则表示仅显示本次启动的日志。
   如果省略了 ID , 那么当 ±offset 是正数的时候, 将从日志头开始正向查找,
   否则(也就是为负数或零)将从日志尾开始反响查找。 举例来说, "-b
    1"表示按时间顺序排列最早的那次启动, "-b 2"则表示在时间上第二早的那次启动; "-b
    -0"表示最后一次启动, "-b -1"表示在时间上第二近的那次启动, 以此类推。 如果
   ±offset 也省略了, 那么相当于"-b -0", 除非本次启动不是最后一次启动(例如用
    --directory 指定了另外一台主机上的日志目录)。
   如果指定了32字符的 ID , 那么表示以此 ID 所代表的那次启动为基准
   计算偏移量(±offset), 计算方法同上。 换句话说, 省略 ID 表示以本次启动为基准
   计算偏移量(±offset)。
--list-boots
   列出每次启动的 序号(也就是相对于本次启动的偏移量)、32字符的ID、
   第一条日志的时间戳、最后一条日志的时间戳。
-k, --dmesg
   仅显示内核日志。隐含了 -b 选项以及 "_TRANSPORT=kernel" 匹配项。
-t, --identifier=SYSLOG_IDENTIFIER
   仅显示 syslog[1] 识别符为 SYSLOG_IDENTIFIER 的日志项。
   可以多次使用该选项以指定多个识别符。
-u, --unit=UNIT|PATTERN
   仅显示属于特定单元的日志。 也就是单元名称正好等于 UNIT 或者符合 PATTERN
   模式的单元。 这相当于添加了一个 "_SYSTEMD_UNIT=UNIT" 匹配项(对于 UNIT 来说),
   或一组匹配项(对于 PATTERN 来说)。
   可以多次使用此选项以添加多个并列的匹配条件(相当于用"OR"逻辑连接)。
--user-unit=
   仅显示属于特定用户会话单元的日志。 相当于同时添加了 "_SYSTEMD_USER_UNIT=" 与
    "_UID=" 两个匹配条件。
   可以多次使用此选项以添加多个并列的匹配条件(相当于用"OR"逻辑连接)。
-p, --priority=
   根据日志等级(包括等级范围)过滤输出结果。 日志等级数字与其名称之间的对应关系如下
   (参见 syslog(3)): "emerg" (0), "alert" (1), "crit" (2), "err" (3),
    "warning" (4), "notice" (5), "info" (6), "debug" (7) 。
   若设为一个单独的数字或日志等级名称, 则表示仅显示小于或等于此等级的日志
   (也就是重要程度等于或高于此等级的日志)。 若使用 FROM..TO.. 设置一个范围,
   则表示仅显示指定的等级范围内(含两端)的日志。 此选项相当于添加了 "PRIORITY="
   匹配条件。
-c, --cursor=
   从指定的游标(cursor)开始显示日志。
   [提示]每条日志都有一个"__CURSOR"字段,类似于该条日志的指纹。
--after-cursor=
   从指定的游标(cursor)之后开始显示日志。 如果使用了 --show-cursor 选项,
   则也会显示游标本身。
--show-cursor
   在最后一条日志之后显示游标, 类似下面这样,以"--"开头:
        -- cursor: s=0639...
   游标的具体格式是私有的(也就是没有公开的规范), 并且会变化。
-S, --since=, -U, --until=
   显示晚于指定时间(--since=)的日志、显示早于指定时间(--until=)的日志。
   参数的格式类似 "2012-10-30 18:17:16" 这样。 如果省略了"时:分:秒"部分,
   则相当于设为 "00:00:00" 。 如果仅省略了"秒"的部分则相当于设为 ":00" 。
   如果省略了"年-月-日"部分, 则相当于设为当前日期。 除了"年-月-日 时:分:秒"格式,
   参数还可以进行如下设置: (1)设为 "yesterday", "today", "tomorrow"
   以表示那一天的零点(00:00:00)。 (2)设为 "now" 以表示当前时间。
   (3)可以在"年-月-日 时:分:秒"前加上 "-"(前移) 或 "+"(后移)
   前缀以表示相对于当前时间的偏移。 关于时间与日期的详细规范, 参见
   systemd.time(7)
-F, --field=
   显示所有日志中某个字段的所有可能值。 [译者注]类似于SQL语句:"SELECT DISTINCT
   某字段 FROM 全部日志"
-N, --fields
   输出所有日志字段的名称
--system, --user
   仅显示系统服务与内核的日志(--system)、 仅显示当前用户的日志(--user)。
   如果两个选项都未指定,则显示当前用户的所有可见日志。
-M, --machine=
   显示来自于正在运行的、特定名称的本地容器的日志。 参数必须是一个本地容器的名称。
-D DIR, --directory=DIR
   仅显示来自于特定目录中的日志, 而不是默认的运行时和系统日志目录中的日志。
--file=GLOB
   GLOB 是一个可以包含"?"与"*"的文件路径匹配模式。 表示仅显示来自与指定的 GLOB
   模式匹配的文件中的日志, 而不是默认的运行时和系统日志目录中的日志。
   可以多次使用此选项以指定多个匹配模式(多个模式之间用"OR"逻辑连接)。
--root=ROOT
   在对日志进行操作时, 将 ROOT 视为系统的根目录。 例如 --update-catalog 将会创建
   ROOT/var/lib/systemd/catalog/database
--new-id128
   此选项并不用于显示日志内容, 而是用于重新生成一个标识日志分类的 128-bit ID 。
   此选项的目的在于 帮助开发者生成易于辨别的日志消息, 以方便调试。
--header
   此选项并不用于显示日志内容, 而是用于显示日志文件内部的头信息(类似于元数据)。
--disk-usage
   此选项并不用于显示日志内容,
   而是用于显示所有日志文件(归档文件与活动文件)的磁盘占用总量。
--vacuum-size=, --vacuum-time=, --vacuum-files=
   这些选项并不用于显示日志内容,
   而是用于清理日志归档文件(并不清理活动的日志文件), 以释放磁盘空间。
    --vacuum-size= 可用于限制归档文件的最大磁盘使用量 (可以使用 "K", "M", "G", "T"
   后缀); --vacuum-time= 可用于清除指定时间之前的归档 (可以使用 "s", "m", "h",
    "days", "weeks", "months", "years" 后缀); --vacuum-files=
   可用于限制日志归档文件的最大数量。 注意,--vacuum-size= 对 --disk-usage
   的输出仅有间接效果, 因为 --disk-usage 输出的是归档日志与活动日志的总量。
   同样,--vacuum-files= 也未必一定会减少日志文件的总数,
   因为它同样仅作用于归档文件而不会删除活动的日志文件。
   此三个选项可以同时使用,以同时从三个维度去限制归档文件。
   若将某选项设为零,则表示取消此选项的限制。
--list-catalog [128-bit-ID...]
   简要列出日志分类信息, 其中包括对分类信息的简要描述。
   如果明确指定了分类ID(128-bit-ID), 那么仅显示指定的分类。
--dump-catalog [128-bit-ID...]
   详细列出日志分类信息 (格式与 .catalog 文件相同)。
   如果明确指定了分类ID(128-bit-ID), 那么仅显示指定的分类。
--update-catalog
   更新日志分类索引二进制文件。
   每当安装、删除、更新了分类文件,都需要执行一次此动作。
--setup-keys
   此选项并不用于显示日志内容, 而是用于生成一个新的FSS(Forward Secure
   Sealing)密钥对。 此密钥对包含一个"sealing key"与一个"verification key"。
    "sealing key"保存在本地日志目录中, 而"verification key"则必须保存在其他地方。
   详见 journald.conf(5) 中的 Seal= 选项。
--force
   与 --setup-keys 连用, 表示即使已经配置了FSS(Forward Secure Sealing)密钥对,
   也要强制重新生成。
--interval=
   与 --setup-keys 连用,指定"sealing key"的变化间隔。
   较短的时间间隔会导致占用更多的CPU资源, 但是能够减少未检测的日志变化时间。
   默认值是 15min
--verify
   检查日志文件的内在一致性。 如果日志文件在生成时开启了FSS特性, 并且使用
    --verify-key= 指定了FSS的"verification key",
   那么,同时还将验证日志文件的真实性。
--verify-key=
   与 --verify 选项连用, 指定FSS的"verification key"
--sync
   要求日志守护进程将所有未写入磁盘的日志数据刷写到磁盘上,
   并且一直阻塞到刷写操作实际完成之后才返回。 因此该命令可以保证当它返回的时候,
   所有在调用此命令的时间点之前的日志, 已经全部安全的刷写到了磁盘中。
--flush
   要求日志守护进程 将 /run/log/journal 中的日志数据 刷写到 /var/log/journal 中
   (如果持久存储设备当前可用的话)。 此操作会一直阻塞到操作完成之后才会返回,
   因此可以确保在该命令返回时, 数据转移确实已经完成。
   注意,此命令仅执行一个单独的、一次性的转移动作, 若没有数据需要转移,
   则此命令什么也不做, 并且也会返回一个表示操作已正确完成的返回值。
--rotate
   要求日志守护进程滚动日志文件。 此命令会一直阻塞到滚动完成之后才会返回。
-h, --help
   显示简短的帮助信息并退出。
--version
   显示简短的版本信息并退出。
--no-pager
   不将程序的输出内容管道(pipe)给分页程序

案例说明

#查看所有日志(默认情况下 ,只保存本次启动的日志)
 journalctl
#查看内核日志(不显示应用日志)
 journalctl -k
#查看系统本次启动的日志
2 实战案例
 journalctl -b
 journalctl -b -0
#查看上一次启动的日志(需更改设置)
 journalctl -b -1
#查看指定时间的日志
 journalctl --since="2017-10-30 18:10:30"
 journalctl --since "20 min ago"
 journalctl --since yesterday
 journalctl --since "2017-01-10" --until "2017-01-11 03:00"
 journalctl --since 09:00 --until "1 hour ago"
#显示尾部的最新10行日志
 journalctl -n
#显示尾部指定行数的日志
 journalctl -n 20
#实时滚动显示最新日志
 journalctl -f
#查看指定服务的日志
 journalctl /usr/lib/systemd/systemd
#查看指定进程的日志
 journalctl _PID=1 #查看某个路径的脚本的日志
 journalctl /usr/bin/bash
#查看指定用户的日志
 journalctl _UID=33 --since today
#查看某个 Unit 的日志
 journalctl -u nginx.service
 journalctl -u nginx.service --since today
#实时滚动显示某个 Unit 的最新日志
 journalctl -u nginx.service -f
#合并显示多个 Unit 的日志
 journalctl -u nginx.service -u php-fpm.service --since today
#查看指定优先级(及其以上级别)的日志,共有8级 0: emerg
1: alert
2: crit
3: err
4: warning
5: notice
6: info
7: debug
 journalctl -p err -b
#日志默认分页输出,--no-pager 改为正常的标准输出
 journalctl --no-pager
#日志管理journalctl
#以 JSON 格式(单行)输出
 journalctl -b -u nginx.service -o json
#以 JSON 格式(多行)输出,可读性更好
 journalctl -b -u nginx.serviceqq -o json-pretty
#显示日志占据的硬盘空间
 journalctl --disk-usage
#指定日志文件占据的最大空间
 journalctl --vacuum-size=1G
#指定日志文件保存多久
 journalctl --vacuum-time=1years

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1186934.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【uniapp】签名组件,兼容vue2vue3

网上找了个源码改吧改吧&#xff0c;清除了没用的功能和兼容性&#xff0c;基于uniapp开发的 样子 vue2 使用方法&#xff0c;具体的可以根据业务自行修改 <signature ref"signature" width"100%" height"410rpx"></signature>confi…

C函数的反汇编

fromelf --bin --outputxxx.bin xxx.axf fromelf --text -a -c --outputxxx.dis xxx.axf去Linker下面复制该目录下的xxx.axf xxx.dis名字随便改&#xff0c;保证后缀是dis就行 然后确认&#xff0c;进行编译 就生成了task.dis文件

【MySQL】库操作和表操作

文章目录 一、库操作1. 创建数据库2. 数据库的编码问题查看系统默认支持的字符集查看数据库支持的字符集查看数据库支持的字符集校验规则校验规则对数据库的影响 3. 操纵数据库查看数据库显示创建语句修改数据库删除数据库 4. 数据库的备份和恢复数据库的备份数据库的恢复表的删…

从业务到软件架构——软件建模

一、问题 1.架构到底是什么&#xff1f;架构和业务之间到底什么关系&#xff1f; 2.好的架构的设计出发点是什么&#xff1f;好的架构应该是什么样的&#xff1f; 作为一个计算机领域的词汇&#xff0c;架构的定义是&#xff1a;有关软件整体结构与组件的抽象描述&#xff0c…

ubuntu22.04使用VNC链接服务器远程桌面

一、本地VNC客户端 本地主要需要一个VNC客户端&#xff0c;用来远程连接服务器端的VNC&#xff08;在不安装Web版本VNC情况下&#xff09;。VNC客户端下载地址&#xff1a; VNC客户端下载 二、安装Xfce桌面环境 在远程服务器控制台中安装Xfce桌面&#xff08;这个桌面环境比…

redis持久化和Redis事务

一)Redis持久化之RDBredisDataBase: 什么是持久化: 1)持久性:和持久化说的是同一回事&#xff0c;衡量持久性的前提是重启进程或者是重启主机以后数据是否还存在 持久:把数据存储在硬盘上&#xff0c;那么就是持久性 不持久:把数据存储在内存中 2)redis是一个内存级别的数据库&…

关于electron中使用ffi-napi窗口遍历的过程及问题

使用环境&#xff1a;electorn19 、node16、ffi-napi、user32 前言&#xff1a;这里先提一嘴&#xff0c;windows api也是有32位和64位的区别的&#xff0c;因为我是要快速完成项目&#xff0c;就没用C写&#xff08;不熟练&#xff09;&#xff0c;我想着直接用易语言写DLL&am…

注册商标-保护企业利益

注册商标-保护企业利益&#xff01; 在当今竞争激烈的商业环境中&#xff0c;商标对于企业的成功至关重要。商标不仅是企业形象的代表&#xff0c;也是企业产品和服务的标识。通过注册商标&#xff0c;企业可以获得法律保护&#xff0c;确保其商标的独特性和安全性。本文将探讨…

1212. 地宫取宝

题目&#xff1a; 1212. 地宫取宝 - AcWing题库 思路&#xff1a;dp&#xff08;最长上升子序列和摘花生的结合&#xff09; 代码&#xff1a; #include<iostream> using namespace std; const int N 55; const int MOD 1000000007;int n, m, k; int w[N][N];//每个坐…

【Leetcode】【数据结构】【C语言】判断两个链表是否相交并返回交点地址

struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {struct ListNode *tailAheadA;struct ListNode *tailBheadB;int count10;int count20;//分别找尾节点&#xff0c;并顺便统计节点数量&#xff1a;while(tailA){tailAtailA->next;c…

变电站自动化系统中的安全措施分析及应用-安科瑞

安科瑞电气股份有限公司 上海嘉定 201801 摘要&#xff1a;阐述变电运行中的问题&#xff0c;电气自动化系统与安全运行措施&#xff0c;包括自动控制设备的投入&#xff0c;电气自动 化与计算机技术相、设备数据的采集与处理、自动化系统的升级、人工智能技术的应用。 关键…

第三章:人工智能深度学习教程-基础神经网络(第五节-了解多层前馈网络)

让我们了解反向传播网络 (BPN) 中的误差是如何计算的以及权重是如何更新的。 考虑下图中的以下网络。 反向传播网络(BPN) 上图中的网络是一个简单的多层前馈网络或反向传播网络。它包含三层,输入层有两个神经元 x 1和 x 2,隐藏层有两个神经元 z 1和 z 2,输出层有一个神经…

跨平台使用:第三方美颜SDK在多种操作系统上的应用

当下&#xff0c;美颜SDK已经演化为一种跨平台的现象&#xff0c;使用户能够在不同的操作系统上享受到相似的美颜效果。这一现象的背后&#xff0c;有一系列强大的第三方美颜SDK&#xff0c;它们在多种操作系统上广泛应用&#xff0c;为用户提供了卓越的美颜体验。 一、美颜S…

机器人阻抗与导纳控制的区别

机器人自身的非线性动力学&#xff08;由柔软性引起的&#xff09;导致控制精度下降&#xff0c;因此难以描述准确的动力学。 导纳控制和阻抗控制都是基于位置与力关系的模式&#xff0c;被认为具有鲁棒性和安全性。然而&#xff0c;当机器人与刚体接触时&#xff0c;导纳控制常…

Android codec2 视频框架 之输入buffer

文章目录 输入端的内存管理输入数据包buffer结构体的转换 主要的流程如上&#xff0c; 申请内存在CCodecBufferChannel&#xff0c;申请之后回调到MediaCodec。然后应用从MediaCodec获取 将解码数据放到buffer中&#xff0c;CCodecBufferChannel在将这块buffer 送到componet模块…

uniapp:打包ios配置隐私协议框

使用uniapp打包ios 上架商店需要配置隐私协议政策弹窗。当用户点击确定后才能继续操作。 首先manifest.json中配置使用原生隐私政策提示框是不支持ios的。不用勾选。 解决思路&#xff1a; 1、新建页面&#xff1a;iosLogin.vue&#xff0c;pages.json中 这个页面需要放在第一…

20道高频JavaScript面试题快问快答

※其他的快问快答&#xff0c;看这里&#xff01; 10道高频Qiankun微前端面试题快问快答 10道高频webpack面试题快问快答 20道高频CSS面试题快问快答 20道高频JavaScript面试题快问快答 30道高频Vue面试题快问快答 面试中的快问快答 快问快答的情景在面试中非常常见。 在面试过…

[100天算法】-最短无序连续子数组(day 66)

题目描述 给定一个整数数组&#xff0c;你需要寻找一个连续的子数组&#xff0c;如果对这个子数组进行升序排序&#xff0c;那么整个数组都会变为升序排序。你找到的子数组应是最短的&#xff0c;请输出它的长度。示例 1:输入: [2, 6, 4, 8, 10, 9, 15] 输出: 5 解释: 你只需要…

LightingChart JS 5.0 Crack

LightingChart JS快如闪电、交互式且响应灵敏的 2D 和 3D JavaScript图表。下一代、世界上最快的 JS 图表 JS交互示例 交互式示例是一种易于使用的探索工具&#xff0c;可帮助您快速开始了解最重要的概念。在这里您可以实时搜索、查看和编辑图表。 高性能 JS 图表 基于 WebGL…

@ControllerAdvice + @ExceptionHandler 定义全局异常

创建Spring Boot项目&#xff1a;使用Spring Initializr创建一个新的Spring Boot项目。依赖配置&#xff1a;在pom.xml 文件中(方便起见使用的是thymeleaf模板引擎)&#xff1a; <dependencies><dependency><groupId>org.springframework.boot</groupId&…