博客
关于我
Linux文件系统与日志分析(inode、inode节点耗尽故障处理、文件备份和恢复、日志文件管理)
阅读量:380 次
发布时间:2019-03-05

本文共 2260 字,大约阅读时间需要 7 分钟。

Linux文件系统与日志分析

一、inode和block概述

1.文件和扇区

文件是存储在硬盘上的,硬盘的最小存储单位叫做“扇区”(sector),每个扇区存储512字节。操作系统读取硬盘时,一次性读取多个扇区,即一个块一个块的读取。

2.块(block)
  • 一般连续八个扇区组成一个“块”(block),一个块是4K大小,是文件存取的最小单位。
  • 操作系统读取硬盘时,一次性读取多个扇区,即一个块一个块的读取。
3.文件数据
  • 文件数据包括实际数据与元数据(类似文件属性)。
  • 文件数据存储在“块”中,存储文件元信息(比如文件的创建者、创建日期、文件大小、文件权限等)的区域就叫做inode。

二、inode(索引节点)

1.inode的内容
  • 包含文件的元信息:
    • 文件的字节数
    • 文件拥有者的User ID
    • 文件的Group ID
    • 文件的读、写、执行权限
    • 文件的时间戳
2.inode的号码
  • 用户通过文件名打开文件时,系统内部的过程:
  • 找到这个文件名对应的inode号码
  • 通过inode号码,获取inode信息
  • 根据inode信息,找到文件数据所在的block,读出数据
3.inode的大小
  • inode也会消耗硬盘空间
  • 每个inode的大小一般是128字节或256字节
  • 格式化文件系统是确定了inode的总数
  • 使用df -i命令可以查看每个硬盘分区的inode总数和已经使用的数量
4.inode的特殊作用

由于inode号码与文件名分离,导致Linux系统具备以下几种特有的现象:

  • 文件名包含特殊字符,可能无法正常删除。这时直接删除inode,能够起到删除文件的作用;
  • 移动文件或重命名文件,只是改变文件名,不影响inode号码;
  • 打开一个文件以后,系统就以inode号码来识别这个文件,不再考虑文件名;
  • 打开一个文件以后,系统就以inode号码来识别这个文件,不再考虑文件名;
  • 文件数据被修改保存后,会生成一个新的inode号码。

三、模拟inode节点耗尽故障处理

1.步骤总汇
  • 使用fdisk创建分区/dev/sdb1,分区大小30M即可
  • 格式化文件系统:mkfs.ext4 /dev/sdb1
  • 创建测试目录:mkdir /test
  • 挂载分区:mount /dev/sdb1 /mnt
  • 模拟inode节点耗尽故障:
    for ((i=1; i<=7680; i++)); do touch /test/file$i; done
  • 删除文件并恢复:
    rm -rf /test/* df -i /test
  • 2.演示
  • 使用fdisk创建分区/dev/sdb1,格式化并挂载
  • 模拟inode节点耗尽故障
  • 删除恢复文件
  • 四、EXT类型文件恢复

    1.安装依赖包
    yum -y install e2fsprogs-devel e2fsprogs-libs
    2.编译安装extundelete
    cd /testwget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2tar jxvf extundelete-0.2.4.tar.bz2cd extundelete-0.2.4./configure --prefix=/usr/local/extundeletemakemake installln -s /usr/local/extundelete/bin/* /usr/bin/
    3.模拟删除并恢复文件
    cd /testecho a > aecho a > becho a > cecho a > dextundelete /dev/sdb1 --inode 2rm -rf a bextundelete /dev/sdb1 --restore-allls RECOVERED_FILES/

    五、xfs 类型文件备份和恢复

    1.备份命令
    xfsdump -f /opt/dump_sdb1 /dev/sdb1
    2.恢复命令
    xfsrestore -f /opt/dump_sdb1 /data/

    六、系统日志

    1.日志文件
    • 内核及公共消息日志:/var/log/messages
    • 计划任务日志:/var/log/cron
    • 系统引导日志:/var/log/dmesg
    • 邮件系统日志:/var/log/maillog
    • 用户登录日志:/var/log/security
    • 用户登录日志:/var/log/lastlog
    • 用户登录日志:/var/log/wtmp
    • 用户登录日志:/var/run/btmp
    2.内核及系统日志
    • 系统服务:rsyslog
    • 配置文件:/etc/rsyslog.conf
    3.日志记录的一般格式
    时间戳 运行域名 用户ID  PID  细节信息
    4.用户日志分析
    • /var/log/lastlog:最近的用户登录事件
    • /var/log/wtmp:用户登录、注销及系统开、关机事件
    • /var/log/secure:与用户验证相关的安全性事件
    5.程序日志分析
    • Web服务:/var/log/httpd/
      • access_log:记录客户访问事件
      • error_log:记录错误事件
    • 代理服务:/var/log/squid/
      • access.log:记录客户访问事件
      • cache.log:记录缓存信息
    6.日志管理策略
    • 及时作好备份和归档
    • 延长日志保存期限
    • 控制日志访问权限
    • 集中管理日志

    转载地址:http://ngxg.baihongyu.com/

    你可能感兴趣的文章
    NT AUTHORITY\NETWORK SERVICE 权限问题
    查看>>
    NT symbols are incorrect, please fix symbols
    查看>>
    ntelliJ IDEA 报错:找不到包或者找不到符号
    查看>>
    NTFS文件权限管理实战
    查看>>
    ntko web firefox跨浏览器插件_深度比较:2019年6个最好的跨浏览器测试工具
    查看>>
    ntko文件存取错误_苹果推送 macOS 10.15.4:iCloud 云盘文件夹共享终于来了
    查看>>
    ntp server 用法小结
    查看>>
    ntpdate 通过外网同步时间
    查看>>
    ntpdate同步配置文件调整详解
    查看>>
    NTPD使用/etc/ntp.conf配置时钟同步详解
    查看>>
    NTP及Chrony时间同步服务设置
    查看>>
    NTP服务器
    查看>>
    NTP配置
    查看>>
    NUC1077 Humble Numbers【数学计算+打表】
    查看>>
    NuGet Gallery 开源项目快速入门指南
    查看>>
    NuGet(微软.NET开发平台的软件包管理工具)在VisualStudio中的安装的使用
    查看>>
    nuget.org 无法加载源 https://api.nuget.org/v3/index.json 的服务索引
    查看>>
    Nuget~管理自己的包包
    查看>>
    NuGet学习笔记001---了解使用NuGet给net快速获取引用
    查看>>
    nullnullHuge Pages
    查看>>