目录
inode 表结构
inode 和 block 概述
-
文件信息数据包括元信息与实际数据
-
文件存储在硬盘上,硬盘最小存储单位的扇区,每个扇区存储 512 字节
-
block (字块)
—— 连续的八个扇区组成一个 block
—— 是文件存取的最小单位
-
inode (索引节点)
—— 中文译名为 ‘索引节点’ ,也叫 i 节点
—— 用于存储文件元信息
—— 相同设备上,inode 号不相同
如何查看 inode 号
—— ls -i :查看 inode 号
stat 文件名 :查看文件的三个时间
三个时间 | |
---|---|
最近访问 atime | 最后一次查看文件 |
最近更改 mtime | 最近更改文件内容的时间,更改完内容之后,ctime 也会改变 |
最近改动 ctime | 最近更改文件元信息的时间 |
inode 内容
-
目录文件的结构
—— 目录也是一种文件
—— 目录文件的结构
-
每个 inode 都有一个号码,操作系统用 inode 号码来识别不同的文件
-
linux 系统内部不使用文件名,而使用 inode 号码来识别文件
-
对于用户,文件名只是 inode 号码便于识别的别称
inode 大小
-
inode 也会消耗硬盘空间
—— 每个 inode 大小一般是 128 字节或 256 字节
-
格式化文件系统时确定 inode 的总数
-
使用 df -i 命令可以查看每个硬盘分区的 inode 总数和已经使用的数量
inode 特殊作用
由于 inode 号码与文件名分离,导致一些 Unix/linux 系统具有以下的现象
—— 当文件名包含特殊字符,可能无法正常删除文件,直接删除 inode ,也可以删除文件
—— 移动或重命名文件时,只改变文件名,不影响 inode 号码
—— 打开一个文件后,系统通过 inode 号码来识别该文件,不再考虑文件名
日志
日志保存位置默认位于:/var/log 目录下
日志的功能:
-
用于记录系统、程序运行中发生的各种事件
-
通过阅读日志,有助于诊断和解决系统故障
日志文件分为
-
内核及系统日志
—— 这种日志数据由系统服务 rsyslog 统一管理,根据其主配置文件 /etc/rsyslog.conf 中的设置决定将内核消息及各种系统程序消息记录到什么位置
-
用户日志
—— 这种日志数据用于记录 Linux 系统用户登录及退出系统的相关信息,包括用户名、登录的终端、登录时间、来源主机、正在使用的进程操作等等
-
程序日志
—— 有些应用程序会选择由自己独立管理一份日志文件(而不是交给 rsyslog 服务管理),用于记录本程序运行过程中的各种事件信息
日志文件的格式
第一个框
事件产生的时间
第二个框
产生事件的服务器的主机名
第三个框
产生事件的服务名或程序名
第四个框
事件的具体信息
常见的一些日志文件
-
内核和公共日志
—— 日志所在位置:/var/log/messages
—— 说明:记录了 Linux 内核消息及各种应用程序的公共日志信息,其中包括了系统启动时的引导信息、系统运行时的其他状态消息、I/O 错误、网络错误、其他系统错误等,
-
计划任务日志
—— 日志所在位置:/var/log/cron
—— 说明:记录与系统定时任务相关的曰志
-
系统引导日志
—— 日志所在位置:/var/log/dmesg
—— 说明:记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息
-
邮件日志
—— 日志所在位置:/var/log/maillog
—— 说明:记录邮件信息的日志
-
用户登录日志
—— /var/log/secure : 记录用户认证相关的安全事件信息
—— /var/log/lastlog : 记录每个用户最近的登录事件
—— /var/log/wtmp : 记录每个用户登录、注销及系统启动和停机事件
—— /var/ run/btmp : 记录失败的、错误的登录尝试及验证事件
内核和公共日志
vim /etc/rsyslog.conf
—— *.info :表示info等级及以上的所有等级的信息都写到对应的日志文件里
—— mail.none :表示某事件的信息不写到日志文件里
Linux 系统内核日志消息的优先级别
数字越小,优先级越高,消息越重要
级别 | 代号 | 作用 |
---|---|---|
0 | EMERG(紧急) | 会导致主机系统不可用的情况 |
1 | ALERT(警告) | 必须马上采取措施解决的问题 |
2 | CRIT(严重) | 比较严重的情况 |
3 | ERR(错误) | 运行出现错误 |
4 | WARNING(提醒) | 可能影响系统功能,需要提醒用户的重要事件 |
5 | NOTICE(注意) | 不会影响正常功能,但是需要注意的事件 |
6 | INFO(信息) | 一般信息 |
7 | DEBUG(调试) | 程序或系统调试信息 |
查询当前登录的用户情况
users 命令
—— 只是简单地输出当前登录的用户名称,每个显示的用户名对应一个登录会话, 如果一个用户有不止一个登录会话,那他的用户名将显示与其相同的次数
who 命令
—— 用于报告当前登录到系统中的每个用户的信息,使用该命令,系统管理员可以查看当前系统存在哪些不合法用户,从而对其进行审计和处理, who 的默认输出包括用户名、终端类型、登录日期及远程主机
w 命令
—— 用于显示当前系统中的每个用户及其所运行的进程信息,比 users、who 命令的输出内容要丰富一些
查询用户登录的历史记录
last 命令
—— 用于查询成功登录到系统的用户记录
—— 最近的登录情况将显示在最前面,通过 last 命令可以及时掌握 Linux 主机的登录情况,若发现未经授权的用户登录过,则表示当前主机可能已被入侵
lastb 命令
—— 用于查询登录失败的用户记录
—— 如果登录的用户名错误、密码不正确等情况都将记录在案,登录失败的情况属于安全事件,因为这表示可能有人在尝试猜解你的密码
日志管理策略
-
及时作好备份和归档
-
延长日志保存期限
-
控制日志访问权限
—— 日志中可能会包含各类敏感信息,如账户、口令等
-
集中管理日志
—— 将服务器的日志文件发到统一的日志文件服务器
—— 便于日志信息的统一收集、整理和分析
—— 杜绝日志信息的意外丢失、恶意篡改或删除