Linux文件系统之inode与日志分析

本文详细介绍了Linux文件系统的inode概念,包括inode存储的文件元信息、stat命令的使用,以及cp、rm、mv命令对inode的影响。同时,文章探讨了日志的重要性、种类、优先级别,并讲解了如何查询用户登录历史和当前登录用户。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一 文件系统inode

二 inode 内容

stat 命令 查看文件具体信息(包含inode号)

目录

cp和inode

三 日志

        什么是日志?日志从哪里来?为何要管理日志?

日志的种类

信息的优先级别重要程度

last --查询用户登录的历史记录

 users who w ---查询当前登录的用户情况


一 文件系统inode

理解inode,要从文件储存说起。

文件储存在硬盘上,硬盘的最小存储单位叫做”扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)。

操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个”块”(block)。这种由多个扇区组成的”块”,是文件存取的最小单位。”块”的大小,最常见的是4KB,即连续八个 sector组成一个 block。

文件数据都储存在”块”中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为”索引节点”。

每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。

二 inode 内容

- inode number 节点号

- 文件类型

- 权限

- UID

- GID

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

- 该文件的大小和不同的时间戳(atime mtime ctime)

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

- 有关文件的其他数据

stat 命令 查看文件具体信息(包含inode号)

 

目录

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

文件引用一个是 inode号

是通过文件名来引用一个文件

一个目录是目录下的文件名和文件inode号之间的映射

linux中文件打开的过程:

1.系统找这个文件名对应的inode号

2.通过inode号,获取inode信息

3.根据inode信息,找到指向文件数据的block,最终读取数据。


cp和inode

cp 命令:

  • 分配一个空闲的inode号,在inode表中生成新条目

  • 在目录中创建一个目录项,将名称与inode编号关联

  • 拷贝数据生成新的文件

rm 命令:

  • 硬链接数递减,从而释放的inode号可以被重用

  • 把数据块放在空闲列表中

  • 删除目录项

  • 数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖


    mv和inode

  • 如果mv命令的目标和源在同一设备,

    不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动!

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

  • [root@localhost a]#find -inum 35667911 -exec rm {} \;
    #通过find命令查找indoe号来删除指定的文件
    [root@localhost a]#find -inum 35667911 -delete

     注意:find 命令先加查到范围,不加就是默认当前目录下。


    三 日志

        什么是日志?日志从哪里来?为何要管理日志?

1、日志就是程序产生的文字类和数字类信息

2、日志从linux中rsyslog程序和未来的大型程序中产生

3、日志的作用是为了统计信息和排查错误

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

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

 


日志的种类

[root@localhost ~]# ls /var/log
anaconda           cron-20210929       messages-20210908  spooler-20210929
audit              cups                messages-20210929  sssd
boot.log           dmesg               ntpstats           tallylog
boot.log-20210902  dmesg.old           pluto              tuned
boot.log-20210903  firewalld           ppp                vmware-vgauthsvc.log.0
boot.log-20210904  gdm                 qemu-ga            vmware-vmsvc.log
boot.log-20210907  glusterfs           rhsm               vmware-vmusr.log
boot.log-20210908  grubby_prune_debug  sa                 wpa_supplicant.log
boot.log-20210929  httpd               samba              wtmp
boot.log-20210930  lastlog             secure             Xorg.0.log
btmp               libvirt             secure-20210908    Xorg.0.log.old
btmp-20210901      maillog             secure-20210929    Xorg.1.log
chrony             maillog-20210908    speech-dispatcher  Xorg.1.log.old
cron               maillog-20210929    spooler            Xorg.9.log
cron-20210908      messages            spooler-20210908   yum.log

message ----核心系统日志文件
cron -------系统定时任务相关的曰志
dmesg-------系统在开机时内核自检的信息
maillog ----邮件信息的曰志
lastlog ----所有用户最后一次的登录时间的日志,这个文件也是二进制文件.不能直接用Vi 查看。而要使用 
            lastlog命令查看
secure------验证和授权方面的倍息
wtmp--------永久记录所有用户的登陆、注销信息,同时记录系统的启动、重启、关机事件 使用last命令查看
ulmp--------记录当前登录用户的信息 使用w、who、users等命令查看

目录中出现了 同名带时间后缀的日志文件,这个是日志轮转产生的,后面我们会再说。

日志文件的格式:

日志文件的格式包含以下 4 列:

  • 事件产生的时间。

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

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

  • 事件的具体信息。


信息的优先级别重要程度

在 Linux 内核中,根据日志消息的重要程度不同,将其分为不同 的优先级别(数字等级越小,优先级越高,消息越重要)。

0 EMERG(紧急):会导致主机系统不可用的情况。

1 ALERT(警告):必须马上采取措施解决的问题。

2 CRIT(严重):比较严重的情况。

3 ERR(错误):运行出现错误。

4 WARNING(提醒):可能影响系统功能,需要提醒用户的重要事件。

5 NOTICE(注意):不会影响正常功能,但是需要注意的事件。

6 INFO(信息):一般信息。

7 DEBUG(调试):程序或系统调试信息等

last --查询用户登录的历史记录

 users who w ---查询当前登录的用户情况

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值