博客
关于我
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/

    你可能感兴趣的文章
    Nginx的可视化神器nginx-gui的下载配置和使用
    查看>>
    Nginx的是什么?干什么用的?
    查看>>
    Nginx访问控制_登陆权限的控制(http_auth_basic_module)
    查看>>
    nginx负载均衡和反相代理的配置
    查看>>
    nginx负载均衡器处理session共享的几种方法(转)
    查看>>
    nginx负载均衡的5种策略(转载)
    查看>>
    nginx负载均衡的五种算法
    查看>>
    nginx转发端口时与导致websocket不生效
    查看>>
    Nginx运维与实战(二)-Https配置
    查看>>
    Nginx配置Https证书
    查看>>
    Nginx配置ssl实现https
    查看>>
    Nginx配置TCP代理指南
    查看>>
    Nginx配置——不记录指定文件类型日志
    查看>>
    nginx配置一、二级域名、多域名对应(api接口、前端网站、后台管理网站)
    查看>>
    Nginx配置代理解决本地html进行ajax请求接口跨域问题
    查看>>
    nginx配置全解
    查看>>
    Nginx配置参数中文说明
    查看>>
    nginx配置域名和ip同时访问、开放多端口
    查看>>
    Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
    查看>>
    Nginx配置如何一键生成
    查看>>