文章目录
一、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