文件系统和日志分析

文件系统和日志分析

一.inode表结构

1.inode表信息

每个文件有着属性信息:文件大小,时间,类型,权限…,这些称为文件的元数据

元数据存放在inode表中,inode表有多条记录组成,每条记录存放对应的文件元数据。

每一个inode表记录保存以下数据

inode number 节点号

文件类型

权限

UID

GID

链接数(指向这个文件名路径名称个数)

该文件的大小和不同的时间戳

指向磁盘上文件的数据块指针

有关文件的其他数据

如何查看inode号

ls -i
stat


注意三个时间:
最近访问时间atime:最后一次查看文件,echo命令不会改变此时间
最近更改时间mtime:最近更改文件内容时间,改完内容mtime也会改变
更改改动ctime:最近更改文件辕信息,比如改变权限等

1.文件存储在硬盘的扇区上,每一个扇区512字节

2.连续8块扇区组成“块”,一般一块默认4k,是文件存取的最小单位

3.文件数据包括了实际数据和元信息,存储元信息的区域叫做inode表。一个文件必须占用一个inode号,并且至少占用一个块。du命令可以显示文件占用区块大小。inode号不包含文件名。inode号是在分区时被固定分配多少个的,所以是可以被消耗完的,当查看磁盘空间有剩余却创建不了文件时,有可能是文件过多inode号被用完,这时find ./ -empty 可以查找空文件并删除。同一块磁盘,同一个分区的inode不重复,所以不同的设备,分区,会存在文件的inode号相同

[root@localhost /]#find -inum 1
./dev/pts
./proc
./proc/fs/nfsd
./sys
./sys/fs/selinux
./sys/kernel/debug
./sys/kernel/security

4.用户在访问一个文件时,会先根据文件名去查找它对应的inode号码,通过inode号获取inode信息,查看用户是否拥有访问文件的权限,如果有,就会指向对应的区块,读取

目录文件的结构是一系列目录项的列表,每个目录项包含文件的文件名和对应的inode号

元数据包括:

mode:权限

owner info:所有者

size:大小

timestamps:三个时间戳

指针:指针的作用是指向实际数据,当实际数据大于4k时,指针会指向另一块存放指针的区块,再由这个区块的指针指向实际数据,以此类推寻找大小越来越大的文件

目录

目录是个特殊文件,目录文件的内容保存了此目录中文件的列表及inode number对应关系

linux 通过文件夹中会有一张 文件名和inode一一对应关系的表 (名字) 去找inode号 inode指向对应的实际数据

2.命令与inode号之间的关系

cp命令:

  • 分配一个空闲的inode号,在inode表中生成新条目
  • 在目录中创建一个目录项,将名称与inode编号关联
  • 拷贝数据生成新的文件

rm命令:

  • 硬链接数递减,从而释放的inode号可以被重用
  • 把数据块放在空闲列表中
  • 删除目录项
  • 数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖

mv命令:

如果mv命令的目标和源在同一设备,不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动!

删除旧的目录对应关系新建目录对应关系

3.xfs类型备份和恢复

针对 xfs 文件系统目前也没有比较成熟的文件恢复工具,所以建议提前做好数 据备份,以避免数据丢失

若系统中未安装 xfsdump与xfsrestore工具,可

以通过yum install -y xfsdump命令安装。

xfsdump 按照inode 顺序备份一个 xfs 文件系统。xfsdump 的备份级别有两种:

  • 0 表示完全备份
  • 1-9 表示增量 备份
  • xfsdump 的备份级别默认为 0

使用 xfsdump 时,需要注意以下的几个限制:

  • 不支持没有挂载的文件系统备份,所以只能备份已挂载的;
  • 必须使用 root 的权限才能操作;
  • 只能备份 XFS 文件系统;
  • 备份下来的数据只能让 xfsrestore 解析;
  • 不能备份两个具有相同 UUID 的文件系统(可使用blkid查看)。
选项说明
-f指定备份文件目录
-L指定标签 session label
-M指定设备标签 media label
-s备份单个文件
[root@localhost ~]#xfsdump -f /opt/dump_sdb1 /dev/sdb1 [-L dump_sdb1 -M sdb1]  //备份文件
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.7 (dump format 3.0) - type ^C for status and control

 ============================= dump label dialog ==============================

please enter label for this dump session (timeout in 300 sec)
 -> dump_sdb1
session label entered: "dump_sdb1"

 --------------------------------- end dialog ---------------------------------

xfsdump: level 0 dump of localhost.localdomain:/mnt
xfsdump: dump date: Mon Jul 31 17:02:22 2023
xfsdump: session id: be56ebe3-e4f9-4c2c-b64e-2b003cad4f00
xfsdump: session label: "dump_sdb1"
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: skipping (no pruning necessary)
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 20800 bytes
xfsdump: /var/lib/xfsdump/inventory created
xfsdump: creating dump session media file 0 (media 0, file 0)
xfsdump: dumping ino map
xfsdump: dumping directories
xfsdump: dumping non-directory files
xfsdump: ending media file
xfsdump: media file size 21016 bytes
xfsdump: dump size (non-dir files) : 0 bytes
xfsdump: dump complete: 73 seconds elapsed
xfsdump: Dump Summary:
xfsdump:   stream 0 /opt/dump_sdb1 OK (success)
xfsdump: Dump Status: SUCCESS
[root@localhost mnt]#ls
aaa
[root@localhost mnt]#rm -rf *  //删除mnt下文件
[root@localhost mnt]#xfsrestore -f /opt/dump_sdb1 /mnt/    //恢复文件
xfsrestore: using file dump (drive_simple) strategy
xfsrestore: version 3.1.7 (dump format 3.0) - type ^C for status and control
xfsrestore: searching media for dump
xfsrestore: examining media file 0
xfsrestore: dump description: 
xfsrestore: hostname: localhost.localdomain
xfsrestore: mount point: /mnt
xfsrestore: volume: /dev/sdb1
xfsrestore: session time: Mon Jul 31 17:06:24 2023
xfsrestore: level: 0
xfsrestore: session label: "dump_sdb1"
xfsrestore: media label: "sdb1]"
xfsrestore: file system id: a407cf5c-2764-47d9-99b8-8d36478e31fe
xfsrestore: session id: 2aaaa8a9-e156-4064-8468-9677c98681b1
xfsrestore: media id: ec80fa42-3dc8-4dbd-add3-7663393ae140
xfsrestore: using online session inventory
xfsrestore: searching media for directory dump
xfsrestore: reading directories
xfsrestore: 1 directories and 1 entries processed
xfsrestore: directory post-processing
xfsrestore: restoring non-directory files
xfsrestore: restore complete: 0 seconds elapsed
xfsrestore: Restore Summary:
xfsrestore:   stream 0 /opt/dump_sdb1 OK (success)
xfsrestore: Restore Status: SUCCESS
[root@localhost mnt]#ls
aaa
//成功

二.日志

内核及系统日志由系统服务 rsyslog 统一管理,根据其主配置文件 /etc/rsyslog.conf

Linux 操作系统本身和大部分服务器程序的日志文件都默认放在目录/var/log/下

1.常见的文件日志

日志文件位置文件说明
/var/log/messages它是核心系统日志文件,其中包含了系统启动时的引导信息,以及系统运行时的其他状态消息。
/var/log/cron记录与系统定时任务相关的曰志
/var/log/dmesg记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息
/var/log/maillog记录邮件信息的曰志
/var/log/secure记录验证和授权方面的倍息,只要涉及账户和密码的程序都会记录
/var/log/lastlog记录系统中所有用户最后一次的登录时间的曰志。这个文件也是二进制文件.不能直接用Vi 查看。而要使用lastlog命令查看
/var/log/wtmp永久记录所有用户的登陆、注销信息,同时记录系统的启动、重启、关机事件。同样,这个文件也是二进制文件.不能直接用Vi查看,而要使用last命令查看
/var/tun/ulmp记录当前已经登录的用户的信息。这个文件会随着用户的登录和注销而不断变化,只记录当前登录用户的信息。要使用who,w,users命令查看

日志文件的格式:

事件产生的时间。

产生事件的服务器的主机名。

产生事件的服务名或程序名。

事件的具体信息。

[root@localhost mnt]#vim /var/log/secure

Jul 31 14:30:32 localhost polkitd[868]: Registered Authentication Agent for unix-process:16270:2201743 (system bus name :1.143 [/usr/bin/pkttyagent --notify-fd 5 --fallback], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale zh_CN.UTF-8)
Jul 31 14:30:32 localhost polkitd[868]: Unregistered Authentication Agent for unix-process:16270:2201743 (system bus name :1.143, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale zh_CN.UTF-8) (disconnected from bus)
Jul 31 14:30:39 localhost polkitd[868]: Registered Authentication Agent for unix-process:16291:2202440 (system bus name :1.144 [/usr/bin/pkttyagent --notify-fd 5 --fallback], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale zh_CN.UTF-8)
Jul 31 14:30:39 localhost sshd[1284]: Received signal 15; terminating.

2.内核和公共日志

[root@localhost mnt]#vim /etc/rsyslog.conf
........
 Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
//表示所有info级别以上的所有等级的信息都存放到后面的路径
xxx.none表示此事件的信息不写到此路径

# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure

# Log all the mail messages in one place.
mail.*                                                  -/var/log/maillog
 
 
# Log cron stuff
cron.*                                                  /var/log/cron
 
# Everybody gets emergency messages
*.emerg                                                 :omusrmsg:*
 
# Save news errors of level crit and higher in a special file.
uucp,news.crit                                          /var/log/spooler
...........
级别说明
0 EMERG(紧急)会导致主机系统不可用的情况
1 ALERT(警告)必须马上采取措施解决的问题
2 CRIT(严重)比较严重的情况
3 ERR(错误)运行出现错误
4 WARNING(提醒)可能影响系统功能,需要提醒用户的重要事件
5 NOTICE(注意)不会影响正常功能,但是需要注意的事件
6 INFO(信息)一般信息
7 DEBUG(调试)程序或系统调试信息

内核和公共消息日志存储位置

内核及大多数系统消息被记录到公共日志文件/var/log/messages 中,而其他一些程序

一条消息均包括以下四个字段。

  • 时间标签:消息发出的日期和时间。
  • 主机名:生成消息的计算机的名称。
  • 子系统名称:发出消息的应用程序的名称。
  • 消息:消息的具体内容。

3.查询用户登录的历史记录

last

last 命令用于查询成功登录到系统的用户记录

[root@localhost mnt]#last
lisi     pts/2        :0               Mon Jul 31 16:32 - 16:32  (00:00)    
lisi     :0           :0               Mon Jul 31 16:32   still logged in   
root     pts/1        192.168.82.100   Mon Jul 31 14:31   still logged in   
root     pts/0        192.168.82.1     Mon Jul 31 08:24   still logged in   
reboot   system boot  3.10.0-693.el7.x Mon Jul 31 08:24 - 17:34  (09:10)    
root     pts/0        192.168.82.1     Sun Jul 30 14:05 - 15:02  (00:57)    
reboot   system boot  3.10.0-693.el7.x Sun Jul 30 14:05 - 17:34 (1+03:29)   
root     pts/2        192.168.82.1     Sat Jul 29 22:48 - 22:55  (00:07)    
root     pts/1        192.168.82.1     Tue Jul 25 12:27 - down  (4+10:29)   
root     pts/0        192.168.82.1     Thu Jul 20 08:24 - down  (9+14:32)   
root     :0           :0               Thu Jul 20 08:25 - 22:57 (9+14:31)   
reboot   system boot  3.10.0-693.el7.x Thu Jul 20 08:24 - 22:57 (9+14:33)   
root     pts/0        192.168.82.1     Wed Jul 19 16:23 - 19:33  (03:09)    

lastb

lastb 命令用于查询登录失败的用户记录

[root@localhost mnt]#lastb
root     pts/0                         Sun Jul 30 14:08 - 14:08  (00:00)    
root     :0           :0               Fri Jul 14 18:32 - 18:32  (00:00)    

btmp begins Fri Jul 14 18:32:25 2023

4.将ssh服务的日志单独设置

[root@localhost ~]#vim /etc/ssh/sshd_config
//修改ssh配置文件,32下一行添加自己的自定义
# Logging
 31 #SyslogFacility AUTH
 32 SyslogFacility LOCAL6
[root@localhost mnt]#vim /etc/rsyslog.conf
 # Save boot messages also to boot.log
 73 local7.*                                                /var/log/boot.log
 74 local6.*                                        /var/log/sshlog      //添加自己想要保存日志的位置
[root@localhost mnt]#systemctl restart rsyslog.service sshd     //重启服务
[root@localhost mnt]#ssh 192.168.82.100
root@192.168.82.100's password: 
Last login: Mon Jul 31 14:31:04 2023 from 192.168.82.100
[root@localhost ~]#vim /var/log/sshlog 

Jul 31 14:30:39 localhost sshd[16302]: Server listening on 0.0.0.0 port 22.
Jul 31 14:30:39 localhost sshd[16302]: Server listening on :: port 22.
Jul 31 14:31:04 localhost sshd[16330]: Accepted password for root from 192.168.82.100 port 37112 ssh2
Jul 31 18:28:12 localhost sshd[16302]: Received signal 15; terminating.
Jul 31 18:28:12 localhost sshd[31807]: Server listening on 0.0.0.0 port 22.
Jul 31 18:28:12 localhost sshd[31807]: Server listening on :: port 22.
Jul 31 18:28:39 localhost sshd[31838]: Accepted password for root from 192.168.82.100 port 37134 ssh2
//查看日志

5.网络日志

请添加图片描述

//日志服务器
[root@localhost ~]#vim /etc/rsyslog.conf 
....
# Provides TCP syslog reception 
$ModLoad imtcp
$InputTCPServerRun 514
//打开19 20行的配置
....
[root@localhost ~]#systemctl restart rsyslog.service 
[root@localhost ~]#ss -ntap|grep 514    //查看514端口
LISTEN     0      25           *:514                      *:*                   users:(("rsyslogd",pid=2015,fd=3))
LISTEN     0      25          :::514                     :::*                   users:(("rsyslogd",pid=2015,fd=4))

//服务器1
[root@localhost ~]#vim /etc/rsyslog.conf
.....
# Provides TCP syslog reception 
$ModLoad imtcp
$InputTCPServerRun 514
//打开19.20行配置
.....
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
*.info;mail.none;authpriv.none;cron.none                @@192.168.82.101
//设置日志发送到哪台服务器
.....
[root@localhost ~]#systemctl restart rsyslog.service 
[root@localhost ~]#ss -ntap|grep 514   //查看514端口
LISTEN     0      25           *:514                      *:*                   users:(("rsyslogd",pid=34126,fd=3))
ESTAB      0      0      192.168.82.100:36508              192.168.82.101:514                 users:(("rsyslogd",pid=34126,fd=9))
LISTEN     0      25          :::514                     :::*                   users:(("rsyslogd",pid=34126,fd=4))
[root@localhost ~]#logger "genshin is the best game in the world"
//向日志服务器发送日志


//日志服务器
[root@localhost ~]#tailf /var/log/messages 
Jul 31 19:00:01 localhost systemd: Started Session 2 of user root.
Jul 31 19:00:01 localhost systemd: Starting Session 2 of user root.
Jul 31 19:01:01 localhost systemd: Started Session 3 of user root.
Jul 31 19:01:01 localhost systemd: Starting Session 3 of user root.
Jul 31 19:01:59 localhost systemd: Stopping System Logging Service...
Jul 31 19:01:59 localhost rsyslogd: [origin software="rsyslogd" swVersion="8.24.0" x-pid="31808" x-info="http://www.rsyslog.com"] exiting on signal 15.
Jul 31 19:01:59 localhost systemd: Starting System Logging Service...
Jul 31 19:01:59 localhost rsyslogd: [origin software="rsyslogd" swVersion="8.24.0" x-pid="34126" x-info="http://www.rsyslog.com"] start
Jul 31 19:01:59 localhost systemd: Started System Logging Service.
Jul 31 19:03:06 localhost root: genshin is the best game in the world
"http://www.rsyslog.com"] exiting on signal 15.
Jul 31 19:01:59 localhost systemd: Starting System Logging Service...
Jul 31 19:01:59 localhost rsyslogd: [origin software="rsyslogd" swVersion="8.24.0" x-pid="34126" x-info="http://www.rsyslog.com"] start
Jul 31 19:01:59 localhost systemd: Started System Logging Service.
Jul 31 19:03:06 localhost root: genshin is the best game in the world

//最后一行显示了服务器1发送来的日志


6.日志管理工具journalctl

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

日志的配置文件:

/etc/systemd/journald.conf

journalctl命令格式

journalctl [OPTIONS...] [MATCHES...]

选项说明:

--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)给分页程序
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值