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

Linux之文件系统与日志分析

时间:2023-07-31 16:36:36浏览次数:34  
标签:文件 文件系统 目录 Linux 日志 inode 链接 block

目录

文件系统稍微了解
日志分析重点,解决问题的唯一手段,遇到问题第第一想到去看日志
apache nginx 遇到问题看返回码 404 500等

一、inode和block

1.1inode和block概述

  • 文件数据包含元信息和实际数据

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

  • block

    • 连续8个扇区组成一个block (512*8=4096 4k)

    • 文件存取的最小单位

  • inode(索引节点)

    • 索引节点也叫i节点

    • 存储文件元信息

一个文件必须占用一个inode,但至少占用一个block

1.2inode的内容

  • inode包含文件的元信息

    • 文件的字节数

    • 文件拥有者的User ID

    • 文件的Group ID

    • 文件的读、 写、执行权限

    • 文件的时间戳

    • 文件类型

    • 链接数

    • 有关文件的其他数据

  • 用stat命令可以查看某个文件的inode信息

[root@localhost ~]#ls -i

[root@localhost ~]#stat [文件]

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

  • 在同一设备下 inode是不可以相同的,不同设备下是可以相同的

  • inode的号码

    • 系统找到这个文件对应的inode号码
    • 通过inode号,获取inode信息
    • 根据node信息,找到文件数据所在的block,读出数据

cp 和 inode:

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

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

  • 拷贝数据生成新的文件

rm 和 inode:

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

  • 把数据块放在空闲列表中

  • 删除目录项

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

mv和inode:

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

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

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

  • 通过indoe号删除rm 常规方法删除不掉的文件

 find 文件路径  -inum inode号 -delete

 find 文件路径  -inum inode号 -exec rm -rf {} \;

1.3硬链接与软连接

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

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

二、分析日志文件

2.1日志

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

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

标签:文件,文件系统,目录,Linux,日志,inode,链接,block
From: https://www.cnblogs.com/mtwm/p/17592655.html

相关文章

  • linux 文件系统 与 日志分析
    一.inode表1)indoe表中保存的信息inodenumber节点号文件类型权限UIDGID链接数(指向这个文件名路径名称个数)该文件的大小和不同时间戳指向磁盘上文件的数据块指针有关文件的其他数据 2)查看indoe号ls-istatstat[选项]文件最近访问:atime最近更改文件:ctim......
  • Linux查看CPU核数
    **方法一:通过proc文件系统获取cpu总数量命令如下**cat/proc/cpuinfo|grepprocessor方法二:nproc命令nproc方法三:lscpu显示CPU详细信息lscpuArchitecture:#架构CPUop-mode(s):#CPU运行模式ByteOrder:#字节序CPU(s):......
  • linux 2 网络基础
    1.包裹函数对服务器客户端等函数进行报错处理以及简化处理比如bindinttcp4bind(shortport,constchar*IP){structsockaddr_inserv_addr;intlfd=Socket(AF_INET,SOCK_STREAM,0);bzero(&serv_addr,sizeof(serv_addr));if(IP==NULL){//......
  • linux 8 基于线程池和epoll监听实现聊天服务器
    1.立项功能1.聊天总人数显示2.账号密码注册功能-保留名字-永久保留id->保留id功能取消3.总聊天室-进入前可输入名字顺序id4.聊天室聊天5.单对单聊天6.id=cfd串联起来4.服务器代码#include"threadpoolsimple.h"//初始化结构体#include<stdio.h>ThreadPool*thrPool=......
  • Linux文件系统与日志分析
    目录Linux文件系统与日志分析日志是解决问题的唯一手段1.inode表结构1.1元数据1.2inode内容1.3inode内容1.4目录文件的结构1.5inode的号码1.6恢复XFS类型的文件2.日志服务管理2.1系统日志介绍2.2rsyslog系统日志服务2.3rsyslog日志管理2.3.1系统日志术语2.4日志文件2.......
  • linux的hw_breakpoint
    参考:https://martin.uy/blog/hardware-breakpoints-in-the-linux-kernel-through-perf_events/https://www.cnblogs.com/sunkang/archive/2011/05/04/2038816.htmlhttps://www.cnblogs.com/hellokitty2/p/16212629.htmlhttps://blog.csdn.net/shenhuxi_yu/article/details/......
  • Linux集群监控部署: prometheus 普罗米修斯 + Grafana
    前言之前我们有用到top、free、iostat等等命令,去监控服务器的性能,但是这些命令,我们只针对单台服务器进行监控,通常我们线上都是一个集群的项目,难道我们需要每一台服务器都去敲命令监控吗?这样显然不是符合逻辑的,Linux中就提供了一个集群监控工具–prometheus。prometheus监......
  • Linux fdisk command All In One
    LinuxfdiskcommandAllInOnediskpartition/磁盘分区$fdisk-hUsage:fdisk[options]<disk>changepartitiontablefdisk[options]-l[<disk>...]listpartitiontable(s)Displayormanipulateadiskpartitiontable.Options:......
  • linux环境中,如何查看网络设备的序列号?
    通过iplink查看网络设备的序列号 iplink  查询结果中,最左边的一列,就是这个网络接口,在主机上的序列号。......
  • 通过日志类
    创建日志模块1、导入相关的依赖<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><depende......