inode
inode与block概述
- 文件存储在硬盘上,硬盘的最小存储单位叫做"扇区" ( sector )每个扇区存储512字节。
- 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块" ( block )。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小 ,最常见的是4KB ,即连续八个扇区组成一个块。
- 文件数据存储在"块”中,那么还必须找到一个地方存储文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种存储文件元信息的区域就叫做inode(索引节点),也叫i节点。
- 一个文件必须占用一个inode ,至少占用一个block。
inode
inode表 结构
inode表 表中信息
- inode number 节点号
- 文件类型
- 权限
- UID
- GID
- 链接数(指向这个文件名路径名称个数)
- 该文件的大小和不同的时间戳
- 指向磁盘上文件的数据块指针
- 有关文件的其他数据
查看inode:
1. ls -i
2. stat
硬盘上最小的存储单位为扇区(512字节)
文件存储的最小单位为块8个扇区组成为4k
目录文件的结构非常简单,就是一系列目录项的列表。每个目录项,由两部分组成:所包含文件的文件名,以及该文件名对应的inode号码。
inode 与 cp rm mv
cp
- 分配一个空闲的inode号,在inode表中生成新条目
- 在目录中创建一个目录项,将名称与inode编号关联
- 拷贝数据生成新的文件
rm
- 硬链接数递减,从而释放的inode号可以被重用
- 把数据块放在空闲列表中
- 删除目录项
- 数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖
mv
-
如果mv命令的目标和源在同一设备,
-
不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动!
-
删除旧的目录对应关系新建目录对应关系
三种时间戳
-
当新创建一个文件时,这个文件的最后访问时间、最后内容修改时间、最后状态更新时间都是一致的。
-
修改一个文件的权限状态信息,只会更新这个文件的最后状态修改时间
-
当修改一个文件时,文件的Modify、Change会被更新
-
当查看文件时,文件的 Access time 会更新。
-
最近访问atime:查看文件的时间
-
最近更改mtime:最近更改文件内容的时间,注意:更改完内容之后,ctime也会改变
-
最近改动ctime:最近更改文件元信息的时间,比如改变权限等
-
日志
常见的日志文件
| 日志文件位置 | 日志文件说明 |
|---|---|
| /var/log/messages内核和公共日志 | 它是核心系统日志文件,其中包含了系统启动时的引导信息,以及系统运行时的其他状态消息。I/O 错误、网络错误和其他系统错误都会记录到此文件中。其他信息,比如某个人的身份切换为 root,已及用户自定义安装软件的日志,也会在这里列出。 |
| /var/log/cron 计划任务日志 | 记录与系统定时任务相关的曰志 |
| /var/log/dmesg 系统引导日志 | 记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息 |
| /var/log/maillog 邮件日志 | 记录邮件信息的曰志 |
| 用户日志 | |
| /var/log/lastlog | 记录系统中所有用户最后一次的登录时间的曰志。这个文件也是二进制文件.不能直接用Vi 查看。而要使用lastlog命令查看 |
| /var/log/secure | 记录验证和授权方面的倍息,只要涉及账户和密码的程序都会记录,比如系统的登录、ssh的登录、su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中 |
| /var/log/wtmp | 永久记录所有用户的登陆、注销信息,同时记录系统的启动、重启、关机事件。同样,这个文件也是二进制文件.不能直接用Vi查看,而要使用last命令查看 |
| /var/tun/ulmp | 记录当前已经登录的用户的信息。这个文件会随着用户的登录和注销而不断变化,只记录当前登录用户的信息。同样,这个文件不能直接用Vi查看,而要使用w、who、users等命令查看 |
日志文件的格式
格式包含:
- 事件产生的时间。
- 产生事件的服务器的主机名。
- 产生事件的服务名或程序名。
- 事件的具体信息。
内核和公共日志
日志的配置文件 位置在 /etc/rsyslog.conf
信息的优先级别重要程度 数字等级越小,优先级越高,消息越重要
| 数字级别 | 级别 | 影响 |
|---|---|---|
| 0 | EMERG(紧急) | 会导致主机系统不可用的情况。 |
| 1 | ALERT(警告) | 必须马上采取措施解决的问题。 |
| 2 | CRIT(严重) | 比较严重的情况。 |
| 3 | ERR(错误) | 运行出现错误。 |
| 4 | WARNING(提醒) | 可能影响系统功能,需要提醒用户的重要事件。 |
| 5 | NOTICE(注意) | 不会影响正常功能,但是需要注意的事件。 |
| 6 | INFO(信息) | 一般信息。 |
| 7 | DEBUG(调试) | 程序或系统调试信息等 |
用户日志
查询当前登录的用户情况
users
- 简单地输出当前登录的用户名称
- 每个显示的用户名对应一个登录会话
- 如果一个用户有不止一个登录会话,那他的用户名将显示与其相同的次数
who
报告当前登录到系统中的每个用户的信息
who 的默认输出包括用户名、终端类型、登录日期及远程主机
w
显示当前系统中的每个用户及其所运行的进程信息
查询用户登录的历史记录
last
查询成功登录到系统的用户记录
lastb
查询登录失败的用户记录
如登录的用户名错误、密码不正确等情况都 将记录在案。登录失败的情况属于安全事件,因为这表示可能有人在尝试猜解你的密码。
除了使用 lastb 命令查看以外,也可以直接从安全日志文件/var/log/secure 中获得相关信息。