文章目录
一、inode和block
1.inode和block概述
文件数据包括元信息与实际数据
文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节
block(块)
- 连续的八个扇区组成一个block
- 是文件存取的最小单位
inode(索引节点)
- 中文译名为“索引节点”,也叫i节点
- 用于存储文件元信息
一个文件必须占用一个inode,但至少占用一个block
2.inode的内容
2.1inode包含文件的元信息
- 文件的字节数
- 文件拥有者的User ID
- 文件的Group ID
- 文件的读、写、执行权限
- 文件的时间戳
2.2用stat命令可以查看某个文件的inode信息
示例:stat benet
2.3Linux系统文件的三个主要的时间属性
Access Time:简写为atime,表示文件的访问时间。当文件内容被访问时,更新这个时间
Modify Time:简写为mtime,表示文件内容的修改时间,,当文件的数据内容被修改时,更新这个时间
Change Time:简写为ctime,表示文件的状态时间,当文件的状态被修改时,更新这个时间
2.4目录文件
Linux系统中,目录也是一种文件。打开目录,实际上就是打开目录文件。
目录文件的结构非常简单,就是一系列目录项的列表。每个目录项,由两部分组成:所包含文件的文件名,该文件对应的inode号
每个inode都有一个号码,操作系统用inode号码来识别不同的文件
Linux系统内部不使用文件名,而使用inode号码来识别文件
对于用户,文件名只是inode号码便于识别的别称
示例:cp文件,inode值变化
3.软/硬连接对应的inode值
示例:
上图可以发现硬链接的inode值与源文件相同,而软链接的inode值与原文件不同
由此可以看出软、硬链接的指方向不同,软链接指向原文件文件名,硬链接指向块设备。
4.inode值大小
- inode也会消耗硬盘空间
- 每个inode的大小
- 一般是128字节或256字节
- 格式化文件系统时确定inode的总数
- 使用df -i命令可以查看每个硬盘分区的inode总数和已经使用的数量
inode也会消耗磁盘空间,所以硬盘格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据;另一个时inode区,存放inode所包含的信息。
每个inode节点的大小一般是128字节或256字节。inode节点的总数,在格式化时就给定,一般是每1KB或每2KB就设置一个inode table的。
查看每个硬盘分区的inode总数和已经使用的数量,可以使用df命令查看。
5.inode的特殊作用
由于inode号码与文件名分离,导致Linux系统具备一下几种特有的现象:
1.文件名包含特殊字符,可能无法正常删除。这时直接删除inode,能够起到删除文件的作用
2.移动文件或重命名文件,只是改变文件名,不影响inode号码
3.打开一个文件以后,系统就以inode号码来识别这个文件,不再考虑文件名
4.文件数据被修改保存后,会生成一个新的inode号码
可以使用:
find ./ -inum [inode号] -exec rm -i {} ;
或
find ./ -inum [inode号] -delete
进行删除
如下图:
二、日志文件
1.日志的功能
- 用于记录系统、程序运行中发生的各种事件
- 通过阅读日志,有助于诊断和解决系统故障
2.日志文件的分类
内核及系统日志
由系统服务reyslog统一进行管理,日志格式基本类似
用户日志
记录系统用户登录及退出系统的相关信息
程序日志
由各种应用程序独立管理的日志文件,记录格式不统一
3.日志保存位置与介绍
Linux操作系统本身和大部分服务器程序的日中文件都默认放在/var/log/下。一部分程序公用一个日志文件,一部分程序使用单个日志文件,而有些大型服务器程序由于日志文件不止一个,所以会在/var/log/下建立相应的子目录来存放日志文件,这样既保证了日志文件目录的结构清晰,又可以快速定位日志文件。
下面介绍常见的一些日志文件:
/var/log/messages:记录Linux内核消息及各种应用程序的公共日志信息,包括启动、、I/O错误。网络错误、程序故障等。对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获得相关的事件记录信息。
/var/log/cron:记录crond计划任务产生的事件信息
/var/log/dmedg:记录Linux操作系统在引导过程中的各种事件信息
/var/log/maillog:记录进入或发出系统的电子邮件活动
/var/log/lastlog:记录每个用户最近的登录事件
var/log/secure:记录用户认证相关的安全事件信息
/var/log/wtmp:记录每个用户登录。注销及系统启动和停止事件
/var/log/btmp:记录失败的、错误的登录尝试及验证事件
4.日志消息的优先级别
Linux系统内核日志信息的优先级别(数字等级越小,优先级越高,消息越重要)
0 EMERG(紧急):会导致主机系统不可用的情况
1 ALERT(警告):必须马上采取措施解决的问题
2 CRIT(严重):比较严重的情况
3 ERR(错误):运行出现错误
4 WARNING(提醒):可能影响系统功能,需要提醒用户的重要事件
5 NOTICE(注意):不会影星正常功能,但是需要注意的事件
6 INFO(信息):一般信息
7 DEBUG(调试):程序或系统调试信息等
一般来说,越为重要的程序或服务,理应保存优先级越低的日志信息
5.journalctl工具
journalctl工具是CentOS-7才有的工具
systemd同一管理所有Unit的启动日志。带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志)。日志的配置文件/etc/systemd/journald.conf
journalctl -b //查看本次启动的日志
journalctl -k //查看内核日志
journalctl | wc -l //查看系统总共的日志
journalctl -u [服务名] //查看某个服务的报错
journalctl -p [日志等级] //查看不同等级的日志
journalctl -xe //查看最近报错的日志
-x:从结尾开始看
-e:提供问题相关的网址