一、inode与block
1、inode表结构
每个文件的属性信息,比如:文件的大小,时间,类型,权限等,称为文件的元数据(meta data)
元数据是存放在inode(index node)表中。inode 表中有很多条记录组成,第一条记录对应的存放了一个
文件的元数据信息。
每一个inode表记录对应的保存了以下信息:
- inode number 节点号
- 文件类型
- 权限
- UID
- GID
- 链接数(指向这个文件名路径名称个数)
- 该文件的大小和不同的时间戳
- 指向磁盘上文件的数据块指针
- 有关文件的其他数据
如何查看inode号
ls -i
stat
有3个时间:
最近访问atime:查看文件的时间
最近更改mtime:最近更改文件内容的时间,注意:更改完内容之后,ctime也会改变
最近改动ctime:最近更改文件元信息的时间,比如改变权限等
-
文件存储在硬盘上,硬盘的最小存储单位叫做"扇区" ( sector )每个扇区存储512字节。
-
操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块" ( block )。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小 ,最常见的是4KB ,即连续八个扇区组成一个块。
-
文件数据存储在"块”中,那么还必须找到一个地方存储文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种存储文件元信息的区域就叫做inode(索引节点),也叫i节点。因此,一个文件必须占用一个inode ,至少占用一个block。
2、inode的内容
可以用stat命令,查看某个文件的inode信息
linux文件系统的三个时间戳
-
ctime(change time):最后一次改变文件或目录的时间
-
atime(access time):是最近一次访问文件或目录的时间
-
mtime(modify time):是最后一次修改文件或目录(内容)的时间
目录
inode不包含文件名。文件名是存放在目录当中的。Linux系统中一切皆文件,因此目录也是一种文件。
目录是个特殊文件,目录文件的内容保存了此目录中文件的列表及inode number对应关系。
文件引用一个是 inode号,是通过文件名来引用一个文件。一个目录是目录下的文件名和文件inode号之间的映射
文件是如何找到实际数据的?
linux 通过文件夹中会有一张 文件名和inode一一对应关系的表 (名字) 去找inode号 inode指向对应的实际数据。
-
用户访问文件时 先去查找 自己 文件夹中的目录项
-
文件名和inode之间对应的关系
-
通过 inode号利用指针 去指向 实际数据
3、硬链接与软链接
创建格式:
ln [-s] 源文件或目录…链接文件或目标位置(加-s为软连接,不加为硬链接)
对比项 | 硬连接 | 软连接 |
---|---|---|
本质 | 本质是同一个文件 | 本质不是同一个文件 |
inode | 相同 | 不同 |
连接数 | 创建新的硬链接,链接数会增加,删除硬链接,链接数减少 | 删除新建不会改变 |
文件夹 | 不支持 | 支持 |
删除源文件 | 只是链接数减一,但链接文件的访问不受影响 | 无法访问连接文件 |
文件类型 | 和源文件相同 | 链接文件,和源文件无关 |
文件大小 | 和源文件相同 | 源文件的路径的长度 |
二、分析日志文件
内核及系统日志由系统服务 rsyslog 统一管理,根据其主配置文件 /etc/rsyslog.conf
Linux 操作系统本身和大部分服务器程序的日志文件都默认放在目录/var/log/下
日志的功能:
1、用于记录系统、程序运行中发生的各种事件
2、通过阅读日志,有助于诊断和解决系统故障
1、日志文件的位置
日志文件位置 | 日志文件说明 |
---|---|
/var/log/messages内核和公共日志 | 它是核心系统日志文件,其中包含了系统启动时的引导信息,以及系统运行时的其他状态消息。 |
/var/log/cron 计划任务日志 | 记录与系统定时任务相关的曰志 |
/var/log/dmesg 系统引导日志 | 记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息 |
/var/log/maillog 邮件日志 | 记录邮件信息的曰志 |
/var/log/lastlog | 记录系统中所有用户最后一次的登录时间的曰志。 |
/var/log/secure | 记录验证和授权方面的倍息,只要涉及账户和密码的程序都会记录 |
/var/log/wtmp | 永久记录所有用户的登陆、注销信息,同时记录系统的启动、重启、关机事件。 |
/var/tun/ulmp | 记录当前已经登录的用户的信息。 |
2、日志文件的分类
-
内核及系统日志:这种日志数据由系统服务rsyslog统一管理,根据其主配置文件/etc/rsyslog.conf中的设置决定将内核消息及各种系统程序消息记录到什么位置
-
用户日志:这种日志数据用于记录Linux系统用户登录及退出系统的相关信息,包括用户名、登 录的终端、登录时间、来源主机、正在使用的进程操作等
-
程序日志:有些应用程序会选择由自己独立管理一份日志文件(而不是交给rsyslog服务管理),用于记录本程序运行过程中的各种事件信息
3、常见的日志文件
-
内核及公共消息日志 : /var/log/messages: 记录Linux内核消息及各种应用程序的公共日志信息,包括启动、I0错误、网络错误、程序故障等。 对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获得相关的事件记录信息。
- 计划任务日志
/var/log/ cron : 记录crond计划任务产生的事件信息。
-
系统引导日志 :
/var/ log/ dmesg: 记录Linux系统在引导过程中的各种事件信息。 -
邮件系统日志 :
/var/log/maillog:记录进入或发出系统的电子邮件活动。 -
用户登录日志 :
-
/var/log/secure: 记录用户认证相关的安全事件信息。
-
/var/log/lastlog: 记录每个用户最近的登录事件。二进制格式
-
/var/log/wtmp: 记录每个用户登录、注销及系统启动和停机事件。二进制格式
-
/var/ run/btmp: 记录失败的、错误的登录尝试及验证事件。二进制格式
4、日志文件分析
[root@localhost mnt]# cat /etc/rsyslog.conf
查看/etc/rsyslog.conf配置文件
* . info;mail.none;authpriv.none;cron.none /var/log/messages
*.info #表示info等级及以上的所有等级的信息都写到对应的日志文件里
mail.none #表示某事件的信息不写到日志文件里(这里比如是邮件)
- Linux系统内核日志消息的优先级别(数字等级越小,优先级越高,消息越重要)
数字等级 | 消息 | 级别 | 描述信息 |
---|---|---|---|
0 | EMERG | 紧急 | 会导致主机系统不可用的情况 |
1 | ALERT | 警告 | 必须马上采取措施解决的问题 |
2 | CRIT | 严重 | 比较严重的情况 |
3 | ERR | 错误 | 运行出现错误 |
4 | WARNING | 提醒 | 可能影响系统功能,需要提醒用户的重要事件 |
5 | NOTICE | 注意 | 不会影响正常功能,但是需要注意的事件 |
6 | INFO | 信息 | 一般信息 |
7 | DEBUG | 调试 | 程序或系统调试信息等 |
5、日志管理
-
及时做好备份和归档
-
延长日志保存期限
-
控制日志访问权限
如日志中可能会包含各类敏感信息,如账户和口令等
集中管理日志:
-
将服务器的日志文件发到统一-的日志文件服务器
-
便于日志信息的统- -收集、 整理和分析
-
杜绝日志信息的意外丢失、恶意篡改或删除