1. inode表结构
1.1 inode表简介
- 文件是存储在硬盘上的,硬盘的最小存储单位叫做“扇区”(sector),每个扇区存储512字节。
- 一般连续八个扇区组成一个"块”(block),一个块是4K大小,是文件存取的最小单位。操作系统读取硬盘的时候,是一次性连续读取多个扇区,即一个块一个块的读取的。4k一读,8个扇区一读
- 文件数据包括实际数据与元信息(类似文件属性)。文件数据存储在“块"中,存储文件元信息(比如文件的创建者、创建日期、文件大小、文件权限等)的区域就叫做inode表。 因此,一个文件必须占用一个inode,并且至少占用一个block。du 显示
- inode不包含文件名。文件名是存放在目录文件夹当中的。Linux 系统中一切皆文件,因此目录也是一种文件。
- 每个inode都有一个号码,操作系统用inode号码来识别不同的文件。Linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称,文件名和inode号码是一一对应关系,每个inode号码对应一个或多个文件名。
- 所以,当用户在Linux系统中试图访问一个文件时,系统会先根据文件名去查找它对应的inode号码:通过inode号码,获取inode信息;根据inode信息,看该用户是否具有访问这个文件的权限;如果有,就指向相对应的数据block,并读取数据。
1.1.1 inode表中的信息
- inode number 节点号
- 文件类型
- 权限
- UID
- GID
- 链接数(指向这个文件名路径名称个数)
- 该文件的大小和不同的时间戳
- 指向磁盘上文件的数据块指针
- 有关文件的其他数据
硬盘上最小的存储单位为扇区(512字节) 文件存储的最小单位为块8个扇区组成为4k 如何查看inode号
- ls -i
- stat 文件/目录名
可以看到使用stat命令查看时可以发现三种时间段:
- 最近访问atime:最后一次查看文件
- 最近更改mtime:最近更改文件内容的时间,注意:更改完内容之后,ctime也会改变
- 最近改动ctime:最近更改文件元信息的时间,比如改变权限等
1.2 inode的大小
- inode也会消耗硬盘空间,每一个inode的大小一般是128字节或是256字节
- 格式化文件系统时确定inode的总数
- 用df -i命令可以查看每一个硬盘分区的inode总数和一使用的数量
删除文件空间不释放:有人正在使用该文件
有空间但是创建不了新文件:inode号用完了,删除不必要的文件
2.相关命令
2.1 cp和inode
cp 命令:
- 分配一个空闲的inode号,在inode表中生成新条目
- 在目录中创建一个目录项,将名称与inode编号关联
- 拷贝数据生成新的文件
2.2 rm命令
- 硬链接数递减,从而释放的inode号可以被重用
- 把数据块放在空闲列表中
- 删除目录项
- 数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖
2.3 mv和inode
如果mv命令的目标和源在同一设备,
不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动!
删除旧的目录对应关系新建目录对应关系
2.4 硬链接和软链接
硬链接: 同一个文件取不同的名或者叫多个名字
软连接 类似于windows里快捷方式,软连接,符号连接
ln(link)
ln [-s] 源文件或目录… 链接文件或目标位置
加s是软连接 符号连接
对比项 | 硬连接 | 软连接 |
---|---|---|
本质 | 本质是同一个文件 | 本质不是同一个文件 |
inode | 相同 | 不同 |
连接数 | 创建新的硬链接,链接数会增加,删除硬链接,链接数减少 | 删除新建不会改变 |
文件夹 | 不支持 | 支持 |
删除源文件 | 只是链接数减一,但链接文件的访问不受影响 | 无法访问连接文件 |
文件类型 | 和源文件相同 | 链接文件,和源文件无关 |
文件大小 | 和源文件相同 | 源文件的路径的长度 |
2.5 xfs类型备份和恢复
2.5.1 xfs类型
CentOS 7 系统默认采用 xfs 类型的文件。针对 xfs 文件系统目前也没有比较成熟的文件恢复工具,所以建议提前做好数 据备份,以避免数据丢失。
2.5.2 备份和恢复
xfs 类型的文件可使用 xfsdump 与 xfsrestore 工具进行备份恢复。
若系统中未安装 xfsdump与xfsrestore工具,可以通过yum install -y xfsdump命令安装。 xfsdump 按照inode 顺序备份一个 xfs 文件系统。xfsdump 的备份级别有两种:
- 0 表示完全备份
- 1-9 表示增量 备份
- xfsdump 的备份级别默认为 0
xfsdump 的命令格式为:
xfsdump -f 备份存放位置 要备份路径或设备文件
- 常用的备份参数包括以下几种:
-f:指定备份文件目录
-L:指定标签 session label
-M:指定设备标签 media label
-s:备份单个文件,-s 后面不能直接跟路径
使用 xfsdump 时,需要注意以下的几个限制:
- 不支持没有挂载的文件系统备份,所以只能备份已挂载的;
- 必须使用 root 的权限才能操作;
- 只能备份 XFS 文件系统;
- 备份下来的数据只能让 xfsrestore 解析;
- 不能备份两个具有相同 UUID 的文件系统(可使用blkid查看)。
3.日志
内核及系统日志由系统服务 rsyslog 统一管理,根据其主配置文件 /etc/rsyslog.conf
Linux 操作系统本身和大部分服务器程序的日志文件都默认放在目录/var/log/下
3.1 日志文件
3.1.1日志的功能
- 用于记录系统、程序运行中发生的各种事件
- 通过阅读日志,有助于诊断和解决系统故障
3.1.2 日志文件的分类
- 内核及系统日志
由系统服务reyslog统一进行管理,日志格式基本相似
- 用户日志
记录系统用户登录及退出系统的相关信息
- 程序日志
由各种应用程序独立管理的日志文件,记录格式不统一
3.1.3 日志保存位置
默认位于: /var/log目录下
3.1.4 主要日志文件介绍
日志 信息 | ||
---|---|---|
lastb | 登录失败的用户信息 | |
lastlog | 用户最后一次登录信息 | 、 |
last | 用户最后一次成功登录的信息 | |
messages | 系统基本日志 | |
secure | 安全相关 |
- /var/log/secure:系统安全日志(用户登录),文本格式,应周期性分析
- /var/log/btmp:登陆失败日志,当前系统上,用户的失败尝试登录相关的日志信息,二进制格式,lastb命令进行查看
- /var/log/wtmp:当前系统上,用户正常登录系统的相关日志信息,二进制格式,last命令可以查看
- /var/log/lastlog:每一个用户最近一次的登录信息,二进制格式,lastlog命令可以查看
- /var/log/dmesg:CentOS7 之前版本系统引导过程中的日志信息,文本格式,开机后的硬件变化将不再记录专用命令dmesg查看,可持续记录硬件变化的情况
- /var/log/boot.log 系统服务启动的相关信息,文本格式
- /var/log/messages :系统中大部分的信息
- /var/log/anaconda : anaconda的日志操作系统安装时安装的软件信息
3.1.5 日志等级
等级 | 内容 |
---|---|
0 | EMERG(紧急):疼痛等级信息,系统已经无法使用了,会导致主机系统不可用的情况 |
1 | ALERT(警告):状态信息,必须马上采取措施解决的问题 |
2 | CRIT(严重):比较严重的情况,临界状况信息,比err等级还要严 |
3 | ERR(错误):错误信息,运行出现错误,一般达到err等级的信息已经可以影响到服务成系统的运行了 。 |
4 | WARNING(提醒):警吿信息,可能影响系统功能,需要提醒用户的重要事件。 |
5 | NOTICE(注意):不会影响正常功能,但是需要注意的事件 |
6 | INFO(信息):基本的通知信息 |
7 | DEBUG(调试):一般的调试信息说明 |
4.rsyslog
全局配置:如果局部设置没有规定,那么就按全局配置 局部设置:不管全局配置是否有配置,局部配置优先
实验:原来ssh 日志 在/var/log/secure 将 ssh服务的日志 文件 独立出来
[root@localhost ~]#tail -f /var/log/secure
#查看ssh服务的日志位置
[root@localhost ~]#vim /etc/ssh/sshd_config
#修改ssh配置文件,32下一行添加自己的自定义
32 #SyslogFacility AUTHPRIV
33 SyslogFacility LOCAL6
[root@localhost ~]#vim /etc/rsyslog.conf
#76 行添加自己的文件位置
local6.* /opt/ssh.log
[root@localhost log]#systemctl restart rsyslog.service sshd
#重启服务
ssh 自己的ip地址
rsyslog 统一收集日志