Linux文件系统和日志

22 阅读8分钟

1. inode表结构

1.1 inode表简介

  1. 文件是存储在硬盘上的,硬盘的最小存储单位叫做“扇区”(sector),每个扇区存储512字节。
  2. 一般连续八个扇区组成一个"块”(block),一个块是4K大小,是文件存取的最小单位。操作系统读取硬盘的时候,是一次性连续读取多个扇区,即一个块一个块的读取的。4k一读,8个扇区一读
  3. 文件数据包括实际数据与元信息(类似文件属性)。文件数据存储在“块"中,存储文件元信息(比如文件的创建者、创建日期、文件大小、文件权限等)的区域就叫做inode表。 因此,一个文件必须占用一个inode,并且至少占用一个block。du 显示
  4. inode不包含文件名。文件名是存放在目录文件夹当中的。Linux 系统中一切皆文件,因此目录也是一种文件。
  5. 每个inode都有一个号码,操作系统用inode号码来识别不同的文件。Linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称,文件名和inode号码是一一对应关系,每个inode号码对应一个或多个文件名。
  6. 所以,当用户在Linux系统中试图访问一个文件时,系统会先根据文件名去查找它对应的inode号码:通过inode号码,获取inode信息;根据inode信息,看该用户是否具有访问这个文件的权限;如果有,就指向相对应的数据block,并读取数据。

1.1.1 inode表中的信息

  • inode number 节点号
  • 文件类型
  • 权限
  • UID
  • GID
  • 链接数(指向这个文件名路径名称个数)
  • 该文件的大小和不同的时间戳
  • 指向磁盘上文件的数据块指针
  • 有关文件的其他数据

硬盘上最小的存储单位为扇区(512字节) 文件存储的最小单位为块8个扇区组成为4k 如何查看inode号

  1. ls -i

image.png

  1. stat 文件/目录名

image.png

可以看到使用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 日志等级

等级内容
0EMERG(紧急):疼痛等级信息,系统已经无法使用了,会导致主机系统不可用的情况
1ALERT(警告):状态信息,必须马上采取措施解决的问题
2CRIT(严重):比较严重的情况,临界状况信息,比err等级还要严
3ERR(错误):错误信息,运行出现错误,一般达到err等级的信息已经可以影响到服务成系统的运行了 。
4WARNING(提醒):警吿信息,可能影响系统功能,需要提醒用户的重要事件。
5NOTICE(注意):不会影响正常功能,但是需要注意的事件
6INFO(信息):基本的通知信息
7DEBUG(调试):一般的调试信息说明

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  统一收集日志