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

目录

一、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信息有哪些

【Linux】了解文件的inode元信息,以及日志分析_第1张图片

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

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

【Linux】了解文件的inode元信息,以及日志分析_第2张图片

关于文件的三种时间戳

最近访问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   邮件日志 记录邮件信息的曰志

【Linux】了解文件的inode元信息,以及日志分析_第3张图片

【Linux】了解文件的inode元信息,以及日志分析_第4张图片

【Linux】了解文件的inode元信息,以及日志分析_第5张图片

四、系统日志管理

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

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

【Linux】了解文件的inode元信息,以及日志分析_第6张图片

服务名称 说 明
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地址远程连接,测试一下

【Linux】了解文件的inode元信息,以及日志分析_第7张图片

【Linux】了解文件的inode元信息,以及日志分析_第8张图片

【Linux】了解文件的inode元信息,以及日志分析_第9张图片

验证日志信息

【Linux】了解文件的inode元信息,以及日志分析_第10张图片

实操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

【Linux】了解文件的inode元信息,以及日志分析_第11张图片【Linux】了解文件的inode元信息,以及日志分析_第12张图片

【Linux】了解文件的inode元信息,以及日志分析_第13张图片

【Linux】了解文件的inode元信息,以及日志分析_第14张图片

【Linux】了解文件的inode元信息,以及日志分析_第15张图片

【Linux】了解文件的inode元信息,以及日志分析_第16张图片

五、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

你可能感兴趣的:(linux,运维,自动化)