深入理解Linux文件系统与日志分析


一、inode与block

1.inode和block概述

文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节
文件数据包括元信息与实际数据

1.1 block(块)

连续8个扇区组成一个block(4k)
是文件存取的最小单位————数据

1.2 inode(索引节点)

中文译名为“索引节点”,也叫i节点
用于存储文件元信息

2、inode的内容

inode包含文件的元信息:
文件的字节数
文件拥有者的User ID
文件的Group ID
文件的读、写、执行权限
文件的时间戳
文件所在block

2.1查看inode信息

stat查看文件的inode信息

[root@yzq opt]# stat 1
  文件:"1"
  大小:0         	块:0          IO 块:4096   普通空文件
设备:fd00h/64768d	Inode:34201310    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:usr_t:s0
最近访问:2022-07-14 18:51:43.182261942 +0800
最近更改:2022-07-14 18:51:43.182261942 +0800
最近改动:2022-07-14 18:51:43.182261942 +0800
创建时间:-

Linux系统文件三个主要的时间属性
ctime(change time)
最后一次改变文件或目录(属性)的时间
atime (access time)
最后一次访问文件或目录的时间
mtime (modify time)
最后一次修改文件或目录(内容)的时间

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.inode号码

每个inode都有一个号码,操作系统用inode号码来识别不同的文件
Linux系统内部不使用文件名,而使用inode号码来识别文件
对于用户,文件名只是inode号码便于识别的别称

3.1用户通过文件名打开文件时,系统内部的过程

1.系统找到这个文件名对于的inode号码
2.通过inode号码,获取inode信息
3.根据inode信息,找到文件数据所在的block,读出数据

3.2查看inode号码的方法

ls -i:查看文件名所对应的inode号码
stat:查看文件inode信息中的inode号码

[root@yzq 1.txt]# ls -i txt 
34201335 txt
[root@yzq 1.txt]# stat txt 
  文件:"txt"
  大小:4         	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:34201335    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:usr_t:s0
最近访问:2022-07-14 19:25:32.717798348 +0800
最近更改:2022-07-14 19:25:32.717798348 +0800
最近改动:2022-07-14 19:25:32.717798348 +0800
创建时间:-

4、文件存储

4.1硬盘分区后的结构

在这里插入图片描述

4.2访问文件的简单流程

用户访问文件–》系统查找文件对应inode–》判断用户权限–》有则指向对应数据block,否则返回

5、inode的大小

inode也会消耗硬盘空间
每个inode的大小一般是128字节或256字节或512字节
格式化文件系统时确定inode的总数

使用df -i命令可以查看每个硬盘分区的inode总数和已经使用的数量

[root@yzq 1.txt]# df -i
文件系统                   Inode 已用(I)  可用(I) 已用(I)% 挂载点
/dev/mapper/centos-root 19394560  158060 19236500       1% /
devtmpfs                  228629     440   228189       1% /dev
tmpfs                     232906       1   232905       1% /dev/shm
tmpfs                     232906    1039   231867       1% /run
tmpfs                     232906      16   232890       1% /sys/fs/cgroup
/dev/sda1                 524288     341   523947       1% /boot
tmpfs                     232906       6   232900       1% /run/user/42
tmpfs                     232906      22   232884       1% /run/user/0
/dev/sr0                       0       0        0        - /run/media/root/CentOS 7 x86_64

6、inode的特殊作用

由于inode号码与文件名分离,导致一些Unix/Linux系统具有以下的现象
当文件名包含特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件
移动或重命名文件时,只改变文件名,不影响inode号码
打开一个文件时,系统通过inode号码来识别该文件,不再考虑文件名
文件数据被修改保存后会生成一个新的indoe号码

[root@yzq 1.txt]# ls -i
34201335 txt
[root@yzq 1.txt]# mv txt txt1
[root@yzq 1.txt]# ls
txt1
[root@yzq 1.txt]# ls -i
34201335 txt1
[root@yzq 1.txt]# vim txt1 
[root@yzq 1.txt]# ls -i
34201330 txt1

6.1删除流程

rm -rf 文件名 (顺序:)
1.找到文件名
2.根据文件名找到文件名的indoe节点
3.删除数据

find
find ./ -inum inode值 -exec rm -i {} ;
find ./ -inum inode值 -delete

[root@yzq 1.txt]# ls -i
34201330 txt1
[root@yzq 1.txt]# find ./ -inum 34201330 -delete 
[root@yzq 1.txt]# ls
[root@yzq 1.txt]# 

inode

二.硬链接和软连接

ln和ln -s区别
1.软连接:快捷方式
硬链接:副本
2.软连接可跨区域
硬链接不行
3.软连接只占用inode的大小
硬链接与文件一样
4.软连接可对目录创建
硬链接不行
5.删除原文件后软连接失效
硬链接不受影响

1、软连接(经常使用)

软连接使用的优点:不占用内存空间
1、 /usr/local/apache/bin/apschectl 可以做软连接ln -s到/sbin目录下,相当于是复制该启动文件到指定目录下
2、 挂载磁盘也可做软链接 将新增的盘子挂载到旧的盘子上面去使用

2、硬链接(使用少)

硬链接相当于是复制了一份源文件到指定位置

三.日志文件

1.日志的功能

用于记录系统、程序运行中发生的各种事件
通过阅读日志,有助于诊断和解决系统故障

1.1日志的作用

1.辅助排障
2.数据恢复
3.数据分析

2.日志文件的分类

内核及系统日志
由系统服务rsyslog统一进行管理,日志格式基本相似
用户日志
记录系统用户登录及退出系统的相关信息
程序日志.:
由各种应用程序独立管理的日志文件,记录格式不统一

3.日志保存位置

默认位于:/var/log目录下

[root@yzq httpd]# cd /var/log
[root@yzq log]# ls
anaconda            sa
audit               samba
boot.log            secure
boot.log-20220707   secure-20220714
boot.log-20220714   speech-dispatcher
btmp                spooler
chrony              spooler-20220714
cron                sssd
cron-20220714       swtpm
cups                tallylog
dmesg               tuned
dmesg.old           vmware-network.1.log
firewalld           vmware-network.2.log
gdm                 vmware-network.3.log
glusterfs           vmware-network.4.log
grubby_prune_debug  vmware-network.5.log
httpd               vmware-network.log
lastlog             vmware-vgauthsvc.log.0
libvirt             vmware-vmsvc.log
maillog             vmware-vmusr.log
maillog-20220714    wpa_supplicant.log
messages            wtmp
messages-20220714   Xorg.0.log
ntpstats            Xorg.0.log.old
pluto               Xorg.1.log
ppp                 Xorg.9.log
qemu-ga             yum.log
rhsm

主要日志文件介绍:

内核及公共消息(系统)日志:/var/log/messages
记录Linux内核消息及各种应用程序的公共日志信息,包括启动、IO错误、网络错误、程序故障等。对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获得相关的事件记录信息

计划任务日志:/var/log/cron
记录crond计划任务产生的事件信息

系统引导日志:/var/log/dmesg
记录Linux系统在引导过程中的各种事件信息

邮件系统日志:/var/log/mailog
记录进入或发出系统的电子邮件活动

4.日志消息的级别

Linux系统内核日志消息的优先级别(数字等级越小,优先级越高,消息越重要)

0 EMERG 紧急 会导致主机系统不可用的情况
1 ALERT 警告 必须马上采取措施解决的问题
2 CRIT 严重 比较严重的错误
3 ERR 错误 运行出现错误
4 WARNING 提醒 可能会影响系统功能的事件
(分界线)
5 NOTICE 注意 不会影响系统但值得注意
6 INFO 信息 一般信息
7 DEBUG 调试 程序或系统调试信息等

越为重要的服务程序或服务,,理应保存优先级越低的日志消息
(想详细知道优先级高的信息,应把它级别调高,一般warning或notice级别,,info级别信息量过于庞大)

5.分析工具

常见的分析工具有
users:显示当前Linux系统中的登录用户信息
who:展示登录到当前系统的用户
w:显示目前登入系统的用户信息
last:显示近期用户或终端的登录情况
lastb:列出登录系统失败的用户相关信息

6.用户日志分析

保存了用户登录、退出等相关信息
/var/log/lastlog:最近的用户登录事件
/var/log/wtmp:用户登录、注销及系统开、关机事件
/var/run/utmp:当前登录的每个用户的详细信息
/var/log/secure:与用户验证相关的安全性事件
程序分析日志
Web服务:/var/log/httpd/
access_log、error_log
代理服务:/var/log/squid/
access.log、cache.log
FTP服务:/var/log/xferlog

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值