Linux-系统管理14-文件系统与日志

                                           目录

一、深入理解 Linux 文件系统-inode 与 block

1.inode 和 block 概述

2.inode 包含文件的元信息

3.目录文件的结构

4.inode 的号码

5.删除指定 inode 号所对应的文件

6.查看文件系统的 inode 与 block 的信息

7.格式化时指定文件系统的 inode 个数与 block 大小

8.解决 inode 耗尽导致的磁盘故障

二、深入理解 Linux 文件系统-链接

2.软链接(soft link)

3.硬链接与软链接的对比

三、分析日志文件

1.日志文件的作用

2.日志文件的分类

3.日志文件的位置

4.常见的日志文件及查看方式

5.日志消息的级别

6.日志文件分析

7.日志文件分析注意事项:

8.对于日志文件的保护


一、深入理解 Linux 文件系统-inode 与 block

1.inode 和 block 概述

文件储存在硬盘上,硬盘的最小储存单位叫“扇区”(sector),每个扇区储存 512 字节。 操作系统读取硬盘的时候,不会一个个扇区的读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个“块”(block)。这种由多个扇区组成的“块”,是文件存取 的最小单位。“块”的大小,最常见的是 4KB,即连续八个 sector 组成一个 block。文件数据存储在“块”中,那么还必须找到一个地方存储文件的元信息,比如文件的创 建者、文件的创建时间,文件的大小等等。这种储存文件元信息的区域叫做 inode,,中文 译名为“索引节点”,也叫 i 节点。一个文件必须占用一个 inode,但至少占用一个 block。

2.inode 包含文件的元信息

(1)inode 内容:

文件的字节数、拥有者的 UID、GID、文件的读写执行权限、时间戳等,但不包含文件 名。文件名是储存在目录的目录项中。

(2)查看文件的 inode 内容,stat 命令

Atime、Mtime、Ctime 详解:

英文别称中文翻译何时修改查看命令
AccessAtime访问时间读取、写入ls -lu
ModifyMtime修改时间写入、修改ls -l
Change/CreateCtime改变时间/创建时间修改文件名、写入、修改、改权限、做链接ls -lc

示例: 【读取文件,Atime 改变】

【写入内容,Mtime、Ctime 改变】

【修改权限,Ctime 改变】

创建链接,Ctime 修改

【修改文件,Ctime 修改】

【touch,三个时间全部修改】

3.目录文件的结构

  • 目录也是一种文件

  • 目录文件的结构:

文件名1inode号码1
文件名2inode号码2

每个 inode 都有一个号码,操作系统用 inode 号码来识别不同的文件 Linux 系统内部不使用文件名,而使用 inode 号码来识别文件。对于系统来说,文件名 只是 inode 号码便于识别的别称。

4.inode 的号码

(1)系统内部打开文件的步骤:

系统找到这个文件名对应的 inode 号码

通过 inode 号码,获取 inode 信息

根据 inode 信息,找到文件数据所在的 block,读出数据

(2)查看文件的 inode 号码

ls -i 文件名
stat 文件名

示例:

文件存储位置对照

当一个用户在 Linux 系统中试图访问一个文件时,系统会先根据文件名去查找它的 inode,看该用户是否具有访问这个文件的权限。如果有,就指向相对应的数据 block; 如果没有过,就返回 Permission denied(拒绝访问)

5.删除指定 inode 号所对应的文件

格式:

find ./ -inum inode 号 -exec rm -i {} \;

示例:

当文件名中包含特殊符号时我们可以删除其 inode 号达到删除文件的目的

 6.查看文件系统的 inode 与 block 的信息

df -i 设备名(文件系统已挂载时查询,查询 inode 总数与已用数量)
dumpe2fs -h 设备名(文件系统无需挂载)
tune2fs -l 设备名(文件系统无需挂载)

示例:

7.格式化时指定文件系统的 inode 个数与 block 大小

格式:

mkfs.ext4 -N inode 数 -b 块大小(单位字节) 设备名

示例:

inode 数设定为 10000 个,block 大小为 1KB

8.解决 inode 耗尽导致的磁盘故障

方法:

删除不使用的文件
将文件备份,重新格式化此文件系统,指定较多的 inode 个数

示例:

将文件备份,重新格式化此文件系统,指定较多的 inode 个数

二、深入理解 Linux 文件系统-链接

格式:
ln 源文件 目标文件

特点:
硬链接指向 inode,新生成的硬链接文件的 inode 号与源文件的 inode 号相同,不可针 对目录进行硬链接,必须在同一文件系统内。删除一个文件名,不影响另外一个的访问。 

示例:【删除源文件,硬链接不受影响】

 2.软链接(soft link)

方法:
ln -s 源文件或目录 目标文件或目录

特点:
软链接指向文件名,新生成的软链接文件的 inode 号与源文件不同,目录也可以生成软 链接,软链接文件与源文件可以不在同一文件系统内,软链接文件的内容是源文件的路径, 读取时系统会自动导向源文件,但当源文件移动或重命名时,软链接将报错。

示例:

【重命名源文件,硬链接不受硬性,但软链接失效】

3.硬链接与软链接的对比

硬链接软链接
inode 号是否相同相同不同
是否可以针对目录不可针对目录可以针对目录
可否跨文件系统不可跨文件系统可跨文件系统
删除、重命名、移动源文件不受影响失效
创建命令ln 源文件 目标文件ln -s 源文件或目录 目标文件或目录

三、分析日志文件

1.日志文件的作用

  • 日志文件是用于记录 Linux 系统中各种运行信息的文件,相当于 Linux 主机的“日记”。

  • 不同的日志文件记载了不同类型的信息,如 Linux 内核消息、用户登录事件、程序错误等。

  • 日志文件对于诊断和解决系统中的问题很有帮助,因为在 Linux 系统中运行的程序通常 会把系统消息和错消息写入相应的日志文件,这样系统一旦出现问题就会“有据可查”。

  • 此外,当主机遭受攻击时,日志文件还可以帮助寻找攻击者留下的痕迹。

2.日志文件的分类

(1)内核及系统日志:

在 6 以上的系统版本中,这种日志数据由系统服务 rsyslog 同一管理,根据其主配置文 件/etc/rsyslog.conf 中的设置决定将内核消息及各种系统程序消息记录到什么位置。

/etc/rsyslog.conf 配置文件中,常见的配置格式及其含义:
“.”:比后面等级要高(包含该等级)的都记录。例如:“*.info”
“.=”:只记录该等级。例如:“.=debug” “!”:除了该等级都记录。例如:“!info”
“-”:当有记录信息需要记录时,先存到缓存中,到一定大小时一次性写入,以减 少对磁盘读写性能的占用。例如:“-/var/log/maillog”

(2)用户日志:

用于记录 Linux 系统用户登录及退出系统的相关信息,包括用户名、登录的终端、登录 时间、来源主机、正在使用的进程操作等。

(3)程序日志:

有些应用程序会选择由自己独立管理一份日志文件,而不是交给 rsyslog 服务管理,用 于记录本程序运行过程中的各种事件信息。

3.日志文件的位置

Linux 系统本身和大部分服务器程序的日志文件默认放在/var/log/下。一部分程序共用一个日志文件,一部分程序使用单个日志文件。而有些大型服务器程序日志由于日志文件不止一个,所以会在/var/log/目录中建立相应的子目录来存放日志文件,这样既保证了日志文 件目录的结构清晰,又可以快速定位日志文件。 有相当一部分日志只有 root 用户才有权限读取,这保证了相关日志信息的安全性。

4.常见的日志文件及查看方式

日志文件存放内容查看命令
/var/log/messages内核消息及各种应用程序的公共日志信息,包 括启动、I/O 错误、网络错误、程序故障等cat 等
/var/log/croncrond 周期性计划任务产生的时间信息cat 等
/var/log/dmesg引导过程中的各种时间信息cat 等
/var/log/maillog进入或发出系统的电子邮件活动cat 等
/var/log/lastlog每个用户最近的登录事件last、lastlog
/var/log/secure用户认证相关的安全时间信息cat 等
/var/log/wtmp每个用户登录、注销及系统启动和停机事件users、who、w
/var/log/btmp失败的、错误的登录尝试及验证事件lastb

5.日志消息的级别

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

级别英文表示及翻译意义
0EMERG(紧急)会导致主机系统不可用的情况
1ALERT(警告)必须马上采取措施解决的问题
2CRIT(严重)比较严重的情况
3ERR(错误)运行出现错误
4WARNING(提醒)可能影响系统功能,需要提醒用户的重要事件
5NOTICE(注意)不会影响正常功能,但是需要注意的事件
6INFO(信息)一般信息
7DEBUG(调试)程序或系统调试信息等
8none(没有)不做记录

6.日志文件分析

(1)内核及大多数系统消息
存放位置:
/var/log/message

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

示例:

(2)用户日志

存放位置:
/var/log/wtmp、/var/log/btmp、/var/log/lastlog

查询命令:
users、who、w、last、lastlog、lastb 等
users 命令:只是简单的输出当前登录的用户名,每一个显示的用户名对应一个会话。
who 命令:用于报告当前登录到系统中的每个用户的信息。默认输出包括用户名、终端类型、登录日期及远程主机
w 命令:用于显示当前操作系统中的每个用户及其远程所运行的进程信息

last 命令:用于查询成功登录到系统的用户记录,最近的登录情况在最前面。

-a:把从何处登录系统的主机名称或 IP 地址,显示在最后一行
-d:将 IP 地址转换成主机名称
-f [记录文件]:指定记录文件
-R:不显示登入系统的主机名称或 IP 地址 -x:显示系统关闭,重新开机,以及执行等级的改变等
-n:n 代表数字,表示最近 n 次登录的记录

  • lastlog 命令:用于显示系统中所有用户最近一次登录信息

  • lastb 命令:用于显示用户错误的登录列表,此指令可以发现系统的登录异常

(3)程序日志

存放位置:
不固定,一般在/var/log/下的子目录中

示例:
查看通过源码包安装的 apache 网站服务的日志

7.日志文件分析注意事项:

总的来说,作为一名合格的系统管理人员,应该提高警惕,随时注意各种可疑的状况, 定期并随机的检查各种系统日志文件,包括一般信息日志、网络连接日志、文件传输日志及 用户登录日志记录等。在检查这些日志时,要注意是否有不合常理的时间或操作记录。例如 出现以下一些现象就应该多加注意:

  • 用户在非常规的时间登录,或者用户登录系统的 IP 地址和以往不一样的
  • 用户登录失败的日志记录,尤其是那些一再连续尝试进入失败的日志记录
  • 非法使用或不正当使用超级用户权限
  • 无故或者非法重新启动各项网络服务的记录
  • 不正常的日志记录,如日志残缺不全,或者是诸如 wtmp 这样的日志文件无故缺少了中间的记录文件

8.对于日志文件的保护

chattr +a 日志文件,a 选项为 append(追加)only,即给日志文件加上 a 权限后,将只 可以追加,不可以删除和修改之前的内容。

root 用户在 vi 编辑器的命令模式按 dd 删除了两行内容后进行 wq!强制保存退出,报错:

chattr +a -R 递归式增加 a 权限:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

改名叫热炸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值