文件系统和日志分析

编程入门 行业动态 更新时间:2024-10-14 06:19:03

<a href=https://www.elefans.com/category/jswz/34/1771295.html style=文件系统和日志分析"/>

文件系统和日志分析

这里写目录标题

  • 文件系统和日志分析
    • 一.inode表结构
      • 1.inode表信息
      • 2.命令与inode号之间的关系
      • 3.xfs类型备份和恢复
    • 二.日志
      • 1.常见的文件日志
      • 2.内核和公共日志
      • 3.查询用户登录的历史记录
      • 4.将ssh服务的日志单独设置
      • 5.网络日志
      • 6.日志管理工具**journalctl**

文件系统和日志分析

一.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/secureJul 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下一行添加自己的自定义
# Logging31 #SyslogFacility AUTH32 SyslogFacility LOCAL6
[root@localhost mnt]#vim /etc/rsyslog.conf# Save boot messages also to boot.log73 local7.*                                                /var/log/boot.log74 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=""] 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=""] 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
""] 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=""] 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:00UTC)以来的秒数。 精确到微秒级别。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 DeveloperDocumentation[5] 文档。注意,如果要将日志输出用于bug报告, 请不要使用此选项。
-q, --quiet当以普通用户身份运行时, 不显示任何警告信息与提示信息。 例如:"-- Logs begin at...", "-- Reboot --"
-m, --merge混合显示包括远程日志在内的所有可见日志。
-b [ID][±offset], --boot=[ID][±offset]显示特定于某次启动的日志, 这相当于添加了一个 "_BOOT_ID=" 匹配条件。如果参数为空(也就是 ID 与 ±offset 都未指定), 则表示仅显示本次启动的日志。如果省略了 ID , 那么当 ±offset 是正数的时候, 将从日志头开始正向查找,否则(也就是为负数或零)将从日志尾开始反响查找。 举例来说, "-b1"表示按时间顺序排列最早的那次启动, "-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=GLOBGLOB 是一个可以包含"?"与"*"的文件路径匹配模式。 表示仅显示来自与指定的 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 SecureSealing)密钥对。 此密钥对包含一个"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)给分页程序

更多推荐

文件系统和日志分析

本文发布于:2024-02-25 01:02:12,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1697275.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:文件系统   日志

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!