Linux 文件系统和日志

目录

1.inode表结构

如何查看inode号

inode内容

2.日志

3.users

4.who

5.w

6.last

7.lastb

8.日志管理策略


1.inode表结构

在Linux文件系统中,每个文件和目录都与一个唯一的索引节点(inode)相关联。索引节点包含有关文件或目录的元数据,如文件的权限、所有者、大小、时间戳以及指向文件数据块的指针等信息。Linux的inode表结构用于管理这些索引节点。

inode表是一个数组,每个元素对应一个索引节点。每个索引节点都有一个唯一的索引节点号(inode number),用于在文件系统中标识该节点。inode表的大小取决于文件系统的大小和inode的数量限制。

下面是一个简化的inode表结构示例:

+-------------------------+
| Superblock              |
+-------------------------+
| Inode Table             |
+-------------------------+
| Data Blocks             |
+-------------------------+
  • Superblock:超级块包含有关文件系统的整体信息,如文件系统的大小、块大小、inode表的起始位置等。

  • Inode Table:inode表是一个数组,每个元素对应一个索引节点。每个索引节点包含有关文件或目录的元数据。

  • Data Blocks:数据块是实际存储文件内容的区域。索引节点中的指针指向这些数据块。

如何查看inode号

使用ls命令或stat命令来查看文件或目录的inode号。以下是两种常用的方法:

  1. 使用ls命令:

    ls -i 文件路径
    

    例如,要查看文件/path/to/file的inode号,可以运行以下命令:

    ls -i /path/to/file
    

    这将输出文件的inode号以及文件名。

  2. 使用stat命令:

    stat 文件路径
    

    例如,要查看文件/path/to/file的inode号,可以运行以下命令:

    stat /path/to/file
    

    这将输出包含文件信息的详细统计数据,其中包括inode号。

inode内容

在Linux文件系统中,每个文件和目录都有一个唯一的标识符,称为inode(索引节点)。每个inode都包含了文件或目录的元数据信息,包括以下内容:

  1. 文件类型:指示inode所代表的对象类型,如普通文件、目录、符号链接等。

  2. 文件权限:指定了对文件的访问权限,包括所有者、所属组和其他用户的读、写和执行权限。

  3. 文件大小:记录了文件的大小,以字节为单位。

  4. 文件所有者和所属组:指示文件的所有者和所属组的用户和组。

  5. 访问时间、修改时间和更改时间:记录了文件的访问时间、内容修改时间和inode元数据修改时间。

  6. 硬链接计数:表示指向该inode的硬链接数量。当硬链接数为0时,文件将被删除。

  7. 数据块指针:指向存储文件数据的数据块的指针。这些指针可以直接指向数据块,也可以通过间接块或双重间接块来访问大型文件。

  8. 文件系统标识符:标识inode所属的文件系统

2.日志

在Linux系统中,有多种类型的日志记录不同方面的系统活动和事件。以下是几个常见的日志文件及其用途:

  1. /var/log/messages:这个文件包含了系统的整体日志信息,记录了各种系统事件、警告和错误等。

  2. /var/log/syslog:这个文件包含了系统的系统日志信息,记录了与系统操作和服务相关的事件和错误。

  3. /var/log/auth.log:这个文件包含了系统的认证日志信息,记录了用户认证、登录和授权等相关事件。

  4. /var/log/kern.log:这个文件包含了内核日志信息,记录了与内核操作和驱动程序相关的事件和错误。

  5. /var/log/dmesg:这个文件包含了内核环缓冲区的内容,记录了系统启动过程中的内核消息和硬件检测信息。

  6. /var/log/boot.log:这个文件包含了系统启动过程的日志信息,记录了启动期间的各种事件和错误。

  7. /var/log/cron:这个文件包含了cron作业的日志信息,记录了计划任务的执行情况。

  8. /var/log/mail.log:这个文件包含了邮件系统的日志信息,记录了邮件的发送和接收等相关事件。

3.users

users命令用于显示当前登录到系统的用户列表。它可以显示当前登录的用户的用户名,并以空格分隔。

以下是使用users命令的一些示例:

  1. 显示当前登录用户列表:

    users
    

    输出可能类似于:

    user1 user2 user3
    
  2. 将用户列表与其他命令结合使用,例如使用who命令来显示用户和登录终端的详细信息:

    users | xargs -n1 who
    

    输出可能类似于:

user1   pts/0        2023-11-12 08:30 (192.168.1.100)
user2   pts/1        2023-11-12 09:15 (192.168.1.101)
user3   pts/2        2023-11-12 10:20 (192.168.1.102)

4.who

who命令用于显示当前登录到系统的用户信息和登录终端的详细信息。它可以显示登录用户的用户名、登录终端、登录时间以及登录来源(IP地址或主机名)等信息。

以下是使用who命令的一些示例:

  1. 显示当前登录用户列表:

    who
    

    输出可能类似于:

    user1   pts/0        2023-11-12 08:30 (192.168.1.100)
    user2   pts/1        2023-11-12 09:15 (192.168.1.101)
    user3   pts/2        2023-11-12 10:20 (192.168.1.102)
    
  2. 显示当前登录用户数:

    who -q
    

    输出可能类似于:

    user1 user2 user3
    
  3. 显示当前登录用户数和总登录用户数:

    who -q -u
    

    输出可能类似于:

    # users=3
    user1 user2 user3
    
  4. 显示详细的登录信息,包括用户、登录终端、登录时间和登录来源:

    who -a
    

    输出可能类似于:

user1   pts/0        2023-11-12 08:30   .    192.168.1.100
user2   pts/1        2023-11-12 09:15   .    192.168.1.101
user3   pts/2        2023-11-12 10:20   .    192.168.1.102

5.w

w命令用于显示当前登录到系统的用户信息和活动终端的详细信息。它提供了比who命令更详细的信息,包括登录用户的用户名、终端、登录时间、运行时间、CPU使用情况以及当前执行的命令等。

以下是使用w命令的一些示例:

  1. 显示当前登录用户列表:

    w
    

    输出可能类似于:

    17:57:50 up 2 days, 4:32, 3 users, load average: 0.12, 0.08, 0.04
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    user1    pts/0    192.168.1.100    08:30    1:30m  0.10s  0.05s sshd: user1@pts/0
    user2    pts/1    192.168.1.101    09:15    2:45m  0.12s  0.02s sshd: user2@pts/1
    user3    pts/2    192.168.1.102    10:20    3:10m  0.08s  0.01s sshd: user3@pts/2
    
  2. 显示当前登录用户数和总登录用户数:

    w -h
    

    输出可能类似于:

    3 users
    
  3. 显示当前登录用户的详细信息,包括用户名、终端、登录时间、运行时间、CPU使用情况和当前执行的命令:

    w -f
    

    输出可能类似于:

    17:57:50 up 2 days, 4:32, 3 users, load average: 0.12, 0.08, 0.04
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    user1    pts/0    192.168.1.100    08:30    1:30m  0.10s  0.05s sshd: user1@pts/0
    user2    pts/1    192.168.1.101    09:15    2:45m  0.12s  0.02s sshd: user2@pts/1
    user3    pts/2    192.168.1.102    10:20    3:10m  0.08s  0.01s sshd: user3@pts/2

6.last

last命令用于显示系统中最近的登录记录,包括用户登录和系统启动的记录。它可以显示用户的登录时间、登录终端、登录来源(IP地址或主机名)以及注销时间等信息。

以下是使用last命令的一些示例:

  1. 显示最近的登录记录:

    last
    

    输出可能类似于:

    user1    pts/0        192.168.1.100    Sat Nov 12 08:30   still logged in
    user2    pts/1        192.168.1.101    Sat Nov 12 09:15   still logged in
    reboot   system boot  0.4.18-10-amd64   Sat Nov 12 07:45   still running
    
  2. 显示指定用户的登录记录:

    last username
    

    输出可能类似于:

    user1    pts/0        192.168.1.100    Sat Nov 12 08:30   still logged in
    user1    pts/0        192.168.1.100    Fri Nov 11 17:20 - 20:30  (03:09)
    
  3. 显示指定数量的登录记录:

    last -n num
    

    输出最近的num条登录记录,例如:

    last -n 5
    
  4. 显示登录记录的详细信息,包括登录时间、注销时间、登录终端和登录来源等:

    last -F
    

    输出可能类似于:

    user1    pts/0        192.168.1.100    Sat Nov 12 08:30:00 2023 - still logged in
    user2    pts/1        192.168.1.101    Sat Nov 12 09:15:00 2023 - still logged in
    reboot   system boot  0.4.18-10-amd64   Sat Nov 12 07:45:00 2023 - still running

7.lastb

lastb命令用于显示系统中最近的登录失败记录。它可以显示登录失败的用户名、登录终端、登录来源(IP地址或主机名)和登录失败的时间等信息。

以下是使用lastb命令的一些示例:

  1. 显示最近的登录失败记录:

    lastb
    

    输出可能类似于:

    root     ssh:notty    192.168.1.100    Sat Nov 12 10:30 - 10:33  (00:02)
    user1    ssh:notty    192.168.1.101    Sat Nov 12 11:15 - 11:18  (00:03)
    
  2. 显示指定数量的登录失败记录:

    lastb -n num
    

    输出最近的num条登录失败记录,例如:

    lastb -n 5
    
  3. 显示登录失败记录的详细信息,包括登录失败的用户名、登录终端、登录来源和登录失败的时间等:

    lastb -F
    

    输出可能类似于:

    root     ssh:notty    192.168.1.100    Sat Nov 12 10:30:00 2023 - Sat Nov 12 10:33:00 2023  (00:02)
    user1    ssh:notty    192.168.1.101    Sat Nov 12 11:15:00 2023 - Sat Nov 12 11:18:00 2023  (00:03)

8.日志管理策略


及时作好备份和归档

延长日志保存期限

控制日志访问权限

—— 日志中可能会包含各类敏感信息,如账户、口令等

集中管理日志

—— 将服务器的日志文件发到统一的日志文件服务器

—— 便于日志信息的统一收集、整理和分析

—— 杜绝日志信息的意外丢失、恶意篡改或删除
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值