inode与block概述
- 文件数据包括元信息与实际数据
- 文件存储在硬盘上,硬盘的最小存储单位是“扇区”,每个扇区存储512字节。
- block:连续的八个扇区组成一个块(block),是文件存储最小单位,大小4k。
- inode:中文译名“索引节点”,也叫i节点,用于存储文件元信息。
补充:raid 下最小存储单元 chunk 大小512k,lvm下最小存储单元 PE 大小4M
inode 的内容
inode包含很多的文件元信息,但不包含文件名。例如:
- 文件的字节数
- 文件的属主
- 文件的属组
- 文件的读、写、执行权限
- 文件的时间戳
- 文件所指向的block
- …
Linux系统中一切皆文件,所以目录也是一种文件,所以目录也有inode号。
使用 stat 命令可以查看某个文件的inode信息。
- atime(access time):最后一次访问文件或目录的时间。
- mtime(modify time):最后一次修改文件或目录的时间。
- ctime(change time):最后一次修改文件或目录属性的时间,比如文件的属主,属组信息。
inode 的号码
在Linux系统当中,我们查看文件的时候,其实在系统内部是这样做的:
- 1、系统先根据文件名找到对应的inode号码
- 2、根据inode号码查看inode里面内容
- 3、在inode内容里面找到对应的block(可能有多个block),然后读取数据。
文件名相当于一个目录,而inode号相当于目录所对应的索引。
比如现在需要查看 /var/log/messages 这个系统日志文件。
首先先根据目录项里面的记录找到var这一行,找到对应的inode号码,根据inode号码,查看对应的block块里面的数据找到文件名为log的记录,然后在目录项里面找到log这一行,根据相对应的inode号码,找到messages的数据信息,一层一层的找,最后读取到想要的数据。
- 查看inode信息的几种方式
- ll -i + 文件名 查看文件的inode号
- df -i 查看每个硬盘分区的inode总数和已使用的inode个数
- stat -f + 文件名 查看当前文件所在的文件系统的inode的信息
- xfs_info /dev/sda1 查看xfs文件系统的inode节点的大小 通过isize字段判断
- Centos 6 下使用 dumpe2fs /dev/sda1 | grep -i "inode size"命令查看inode的大小,一般是128字节。
inode 的特殊作用
- 由于inode号码与文件名分离,导致一些Unix、Linux系统具有一下的现象
- 当文件名包含特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件
- 移动或重命名文件时,只改变文件名,不影响inode号码
- 打开一个文件后,系统通过inode号码来识别该文件,不在考虑文件名
find -type f -inum (inode号) -exec rm -rf {} ; 根据inode号删除文件
inode 耗尽故障处理
当遇到硬盘还有容量未使用,但是就是不可以创建文件,这个时候需要考虑是不是inode耗尽的可能。
解决方案:删除不需要的空文件和空目录用来释放inode号。
硬链接与软链接
- 硬链接:相当于一个文件的副本(不可以对目录创建硬链接),当一个文件拥有多个硬链接时,修改其中一个文件的内容,会影响到所有文件,删除其中一个文件,不影响另一个文件的访问。只是inode元信息中的“链接数”会减1。硬链接文件的inode号吗相同。
- 软链接:软链接是一个独立的文件,也有自己的inode号,软链接文件会让数据的读取只想它链接的哪个文件的文件名。软链接依赖与它链接的文件。如果删除了软链接依赖的文件,那么这个软链接将会失效。
恢复xfs文件类型的备份与恢复
需要恢复文件首先需要备份文件。
xfs文件类型使用xfsdump工具来备份和恢复。
日志分析
概述
- 日志文件是用于记录Linux系统中各种运行消息的文件。比如用户登录事件,程序出错等。
- 日志文件对于诊断和解决系统中的问题很有帮助。
- Linux日志保存的目录:
分类
- 内核及公共消息日志:/var/log/messages:记录Linux内核消息及各种应用程序的公共日志信息。
- 系统引导日志:/var/log/dmesg:记录Linux系统在引导过程中的各种事件信息。
- 计划任务日志:/var/log/cron:记录计划任务产生的事件信息。
- 邮件系统日志:/var/log/maillon:记录进入或发出系统的电子邮件活动。
- 用户登录日志:
- /var/log/lastlog:记录每个用户最近的登录事件。
- /var/log/secure:记录用户认证相关的安全事件信息。
- /var/log/wtmp:记录每个用户登录、注销及系统启动和停机事件。
- /var/run/btmp:记录失败的、错误的登录尝试及验证事件。
日志的消息级别
级号 | 消息 | 级别 | 说明 |
---|---|---|---|
0 | EMERG | 紧急 | 会导致主机系统不可用的情况 |
1 | ALERT | 警告 | 必须马上采取措施解决的问题 |
2 | CRIT | 严重 | 比较严重的情况 |
3 | ERR | 错误 | 运行出现错误 |
4 | WARNING | 提醒 | 可能会影响系统功能的事件 |
5 | NOTICE | 注意 | 不会影响系统但值得注意 |
6 | INFO | 信息 | 一般信息 |
7 | DEBUG | 调试 | 程序或系统调试信息等 |
级号越小,越紧急