首页 > 系统相关 >Linux文件系统与日志分析

Linux文件系统与日志分析

时间:2022-10-31 09:22:08浏览次数:41  
标签:文件 数据 备份 文件系统 Linux 日志 inode 目录

 

inode 结构表

每个文件的属性信息,比如:文件的大小,时间,类型,权限等,称为文件的元数据(meta data)

元数据是存放在inode(index node)表中。inode 表中有很多条记录组成,第一条记录对应的存放了一个

文件的元数据信息。

每一个inode表记录对应的保存了以下信息:

inode number 节点号

文件类型

权限

UID

GID

链接数(指向这个文件名路径名称个数)

该文件的大小和不同的时间戳

指向磁盘上文件的数据块指针

有关文件的其他数据

查看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,并读取数据。

硬盘上最小的存储单位为扇区(512字节)

文件存储的最小单位为块8个扇区组成为4k

目录文件的结构非常简单,就是一系列目录项(dirent)的列表。每个目录项,由两部分组成:所包含文件的文件名,以及该文件名对应的inode号码。

 mode:权限owner info:所有者size:大小timestamps:三个时间戳

 

 文件 系统 管理文件属性:4G 以上的单个文件

目录

目录是个特殊文件,目录文件的内容保存了此目录中文件的列表及inode number对应关系

文件引用一个是 inode号

是通过文件名来引用一个文件

一个目录是目录下的文件名和文件inode号之间的映射

文件是如何找到实际数据的

linux 通过文件夹中会有一张 文件名和inode一一对应关系的表 (名字) 去找inode号 inode指向对应的实际数据

 

 

 

1.用户访问文件时 先去查找 自己 文件夹中的目录项 , 2文件名和inode之间对应的关系, 3通过 inode号利用指针 去指向 实际数据

直接指针,间接指针

cp 和 inode

cp 命令:

分配一个空闲的inode号,在inode表中生成新条目

在目录中创建一个目录项,将名称与inode编号关联

拷贝数据生成新的文件

rm 命令:

硬链接数递减,从而释放的inode号可以被重用

把数据块放在空闲列表中

删除目录项

数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖

mv和inode

如果mv命令的目标和源在同一设备,

不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动!

删除旧的目录对应关系新建目录对应关系

 

三种时间戳

当新创建一个文件时,这个文件的最后访问时间、最后内容修改时间、最后状态更新时间都是一致的。

修改一个文件的权限状态信息,只会更新这个文件的最后状态修改时间

对比事例2,这里最后状态时间、最后内容改变时间都被更新了。 当修改一个文件时,文件的Modify、Change会被更新

当查看文件时,文件的 Access time 会更新。

当需要了解这个文件有没有被修改过 - Modify Time 当需要了解这个文件最后被查看的时间 - Access Time 当需要了解这个文件权限最后变动的时间 - Change Time

 

 

 

 

硬链接和软连接

硬连接 同一个文件取不同的名或者叫多个名字(比如 苏轼 字子瞻 号东坡居士 苏二 谥号文忠 )不支持文件夹,创建一个连接数加一,多路径访问。

软连接 类似于windows里快捷方式,软连接,符号连接

ln(link)

ln [-s] 源文件或目录… 链接文件或目标位置

加s是软连接 符号连接

对比项硬连接软连接
本质 本质是同一个文件 本质不是同一个文件
inode 相同 不同
连接数 创建新的硬链接,链接数会增加,删除硬链接,链接数减少 删除新建不会改变
文件夹 不支持 支持
删除源文件 只是链接数减一,但链接文件的访问不受影响 无法访问连接文件
文件类型 和源文件相同 链接文件,和源文件无关
文件大小 和源文件相同 源文件的路径的长度

 

删除文件:

删除一个文件,实际上并不清除 inode 节点和 block 的数据,只是在这个文件的父目录 里面的 block 中,删除这个文件的名字。Linux 是通过 Link 的数量来控制文件删除的,只有 当一个文件不存在任何 Link 的时候,这个文件才会被删除。在 Linux 系统运维工作中,经常会遇到因操作不慎、操作错误等导致文件数据丢失的情 况,尤其对于客户企业中一些新手。当然,这里所指的是彻底删除,即已经不能通过“回收 站”找回的情况,比如使用“rm -rf”来删除数据。针对 Linux 下的 EXT 文件系统,可用的恢复 工具有 debugfs、ext3grep、extundelete 等。 其中 extundelete 是一个开源的 Linux 数据 恢复工具,支持 ext3 文件系统。

使用extundelete 如何恢复数据:

在编译安装 extundelete 之前需要先安装两个依赖包 e2fsprogs-libs 和 e2fsprogs-devel,

这两个包在系统安装光盘的/Package 目录下就有,使用 rpm 或 yum 命令将其安装。

e2fsprogs-devel 安装依赖于 libcom_err-devel 包

 

xfs备份和恢复

CentOS 7 系统默认采用 xfs 类型的文件。针对 xfs 文件系统目前也没有比较成熟的文件恢复工具,所以建议提前做好数 据备份,以避免数据丢失。

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查看)。

 

 

 

 

 

日志

内核及系统日志由系统服务 rsyslog 统一管理,根据其主配置文件 /etc/rsyslog.conf

Linux 操作系统本身和大部分服务器程序的日志文件都默认放在目录/var/log/下

 

日志文件位置

日志文件说明

/var/log/messages内核和公共日志

它是核心系统日志文件,其中包含了系统启动时的引导信息,以及系统运行时的其他状态消息。I/O 错误、网络错误和其他系统错误都会记录到此文件中。其他信息,比如某个人的身份切换为 root,已及用户自定义安装软件的日志,也会在这里列出。

/var/log/cron 计划任务日志

记录与系统定时任务相关的曰志

/var/log/dmesg 系统引导日志

记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息

/var/log/maillog 邮件日志

记录邮件信息的曰志

用户日志

 

/var/log/lastlog

记录系统中所有用户最后一次的登录时间的曰志。这个文件也是二进制文件.不能直接用Vi 查看。而要使用lastlog命令查看

/var/log/secure

记录验证和授权方面的倍息,只要涉及账户和密码的程序都会记录,比如系统的登录、ssh的登录、su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中

/var/log/wtmp

永久记录所有用户的登陆、注销信息,同时记录系统的启动、重启、关机事件。同样,这个文件也是二进制文件.不能直接用Vi查看,而要使用last命令查看

/var/tun/ulmp

记录当前已经登录的用户的信息。这个文件会随着用户的登录和注销而不断变化,只记录当前登录用户的信息。同样,这个文件不能直接用Vi查看,而要使用w、who、users等命令查看

日志文件的格式,日志文件的格式包含以下 4 列:

事件产生的时间。

产生事件的服务器的主机名。

产生事件的服务名或程序名。

事件的具体信息。

 

 

 

 

 信息的优先级别重要程度

在 Linux 内核中,根据日志消息的重要程度不同,将其分为不同 的优先级别(数字等级越小,优先级越高,消息越重要)。

0 EMERG(紧急):会导致主机系统不可用的情况。

1 ALERT(警告):必须马上采取措施解决的问题。

2 CRIT(严重):比较严重的情况。

3 ERR(错误):运行出现错误。

4 WARNING(提醒):可能影响系统功能,需要提醒用户的重要事件。

5 NOTICE(注意):不会影响正常功能,但是需要注意的事件。

6 INFO(信息):一般信息。

7 DEBUG(调试):程序或系统调试信息等

用户日志

 

 

 

 

 

 

 

 

 

 

 

 

 

 

inode和block解释
文件数据包括元信息与实际数据

元信息:记录着数据的属性,是什么,干嘛的(说明书)

实际数据:数据包的真实数据

文件存储在硬盘上,硬盘最小存储单位是扇区,每个扇区存储512字节

block(块)

连续的八个扇区组成一个 block

​ 是文件存取的最小单位

inode(索引节点)也占用空间,inode节点满了,显示磁盘空间占比过高,不可创建文件

中文 译名为索引节点,也加i节点

用于存储文件云信息



标签:文件,数据,备份,文件系统,Linux,日志,inode,目录
From: https://www.cnblogs.com/123456789SI/p/16793892.html

相关文章

  • linux 中实现文本的按列反转
     001、[root@pc1test3]#lsa.txt[root@pc1test3]#cata.txt##测试数据rduyfsxvy[root@pc1test3]#reva.txt##实现按列反转udrsfyyv......
  • Linux文件权限操作
    Linux文件权限操作介绍我们在操作linux系统时,经常需要给系统中的文件夹赋予相关用户权限,如果权限过大,安全性较低,如果权限过小,对于用户的部分操作都会提示Operationnot......
  • Linux汇编LED驱动
    MX6U的IO口作为GPIO的步骤总结:使能GPIO对应的时钟设置寄存器IOMUXC_SW_MUX_CTL_PAD_XX_XX,设置IO的复用功能,使其复用为GPIO功能。设置寄存器IOMUXC_SW_PAD_CTL_PAD......
  • 第一章 Linux 基础
    第一章Linux基础1、Linux目录结构linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“​​/​​”,然后在此目录下再创建其他的目录。深刻理解lin......
  • 虚拟文件系统 - Linux Kernel Development阅读笔记
    Linux将访问文件系统的接口统一为虚拟文件系统(VFS)接口,消除了文件系统间和硬件存储介质之间的差异。write()->sys_write()->filesystem'swritemethod->physicalme......
  • hadoop 日志存放位置
    初学者运行MapReduce作业时,经常会遇到各种错误,由于缺乏经验,往往不知所云,一般直接将终端打印的错误贴到搜索引擎上查找,以借鉴前人的经验。然而,对于hadoop而言,当遇到错误时,第......
  • linux 中实现将fasta文件的碱基数目转换为指定的个数
     001、每行输出为4个碱基[root@pc1test]#lstest.fa[root@pc1test]#cattest.fa>chr1aattcctt>chr2ttggaacc>chr3TTCCGG[root@pc1test]#awk'{if($0~......
  • linux 安装软件学习
    1.适合小白Linux的第三节Linux软件安装适合小白Linux的第三节Linux软件安装_哔哩哔哩_bilibili2.Linux源码安装步骤Linux源码安装步骤-南极山-博客园(cnblogs.com)......
  • Linux Must-Learnt Commands
    Clearsuccessfulloginhistory:echo>/var/log/wtmpViewloginhistory:lastClearcommand'sinputhistory:history-c#temperarllysudoaptinstall-ywipewipe~/.......
  • Linux 测网速
    speedtest-cli是一个用Python编写的轻量级Linux命令行工具,在Python2.4至3.6版本下均可运行。它基于speedtest.net的基础架构来测量网络的上/下行速率。下载:gitclonehttps:......