linux文件系统和日志分析

 一、inode和block概述

文件数据包括元信息与真实数据

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

block(块)

连续的八个扇区组成一个block
是文件读取的最小单位

inode(索引节点)

中文译名为“索引节点”,也叫i节点
用于存储文件元信息

1.inode表信息

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

inode number 节点号

文件类型权限

UID

GID

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

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

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

有关文件的其他数据

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

Linux系统文件的三个主要的时间属性

ctime(change time)

最后一次改变文件或目录(属性)的时间

atime(access time)

最后一次访问文件或目录的时间

mtime(modify time)

最后一次修改文件或目录(内容)时间

当新建文件时,最近访问、最近更改、最近改动时间均一致

打开文件  最近访问时间会更新

不打开文件  只查看文件的话  最近访问、最近更改、最近改动时间不会变动

更改文件内容   最近更改时间、最近改动时间会更新

修改权限   最近改动时间会更新

inode内容

每个inode都有一个号码,操作系统用inode号码来识别不同的文件

Linux系统内部不使用文件名,而使用inode号码来识别文件

对于用户,文件名只是inode号码便于识别的别称

查看inode号码

用户通过文件名打开文件时,系统内部的过程

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

相当于文件名是一本书,inode号码是这本书的目录,根据目录寻找书中内容

查看inode号码的方法

ls  -i     查看文件名对应的inode号码

stat  查看文件inode信息中的inode号码

inode号是文件系统分配的;

inode号可以相同  但是不在同一块硬盘上;

inode号在同一设备上是唯一的;

inode号是有限资源,它的多少和磁盘大小有关。

二,链接文件

硬链接: 与普通文件没什么不同,inode 都指向同一个文件在硬盘中的区块

软链接: 保存了其代表的文件的绝对路径,是另外一种文件,在硬盘上有独立的区块,访问时替换自身路径。

硬链接的特点

本质上是一个文件

inodoe相同

创建新的硬链接,链接数会增加,删除硬链接,链接数减少

不支持文件夹

只是链接数减一,但链接文件的访问不受影响

和源文件相同

软链接的特点

本质不是同一个文件

inodoe不同

支持文件夹

无法访问链接文件

链接文件和源文件无关

源文件路径的长度

EXT 类型文件恢复

删除一个文件,实际上并不清除 inode 节点和 block 的数据,只是在这个文件的父目录

里面的 block 中,删除这个文件的名字。Linux 是通过 Link 的数量来控制文件删除的,只有

当一个文件不存在任何 Link 的时候,这个文件才会被删除。

Linux 系统运维工作中,经常会遇到因操作不慎、操作错误等导致文件数据丢失的情

况,尤其对于客户企业中一些新手。当然,这里所指的是彻底删除,即已经不能通过回收

找回的情况,比如使用“rm -rf”来删除数据。针对 Linux 下的 EXT 文件系统,可用的恢复

工具有 debugfsext3grepextundelete 等。 其中 extundelete 是一个开源的 Linux 数据

恢复工具,支持 ext3ext4 文件系统。

在数据被误删除后,第一时间要做的就是卸载被删除数据所在的分区,如果是根分区的

数据遭到误删,就需要将系统进入单用户模式,并且将根分区以只读模式挂载。这样做的原

因很简单,因为将文件删除后,仅仅是将文件的 inode 节点中的扇区指针清零,实际文件还

存储在磁盘上,如果磁盘继续以读写模式挂载,这些已删除的文件的数据块就可能被操作系

统重新分配出去,在这些数据库被新的数据覆盖后,这些数据就真的丢失了,恢复工具也回

天无力。所以以只读模式挂载磁盘可以尽量降低数据库中数据被覆盖的风险,以提高恢复数

据成功的比例。

编译安装 extundelete

注:extundelete 是一个开源的 Linux 数据恢复工具,支持 ext3、ext4文件系统。(ext4只能在centos6版本恢复),本实验模拟ext3文件系统损坏,借助extundelete,修复文件数据

实验前准备

所需依赖包: yum -y install e2fsprogs-devel e2fsprogs-libs

该软件涉及到c++,所以安装一个c++编译工具: yum install -y gcc gcc-c++ make

 准备一台centos 的虚拟机,新添加一块硬盘,开辟出一块主分区,建立ext3文件系统。(本次实验是要centos7运行)

 fdisk /dev/sdb
    mkfs.ext3 /dev/sdb1
     mkdir /test
    mount /dev/sdb1  /test
    lsblk

安装好依赖包,配置好安装位置,进行编译和安装并创建出一个软连接

yum -y install e2fsprogs-devel e2fsprogs-libs gcc*
   cd /test
   tar  xf extundelete-0.2.4.tar.bz2 
    cd extundelete-0.2.4/

   ./configure --prefix=/usr/local/extundelete && make && make install
    ln -s /usr/local/extundelete/bin/* /usr/bin/

用echo命令创建出一个或多个文件并写入数据

echo 123>a.txt
 echo 123>b.txt   //创建两个文件 ab  ,写入数据

extundelete /dev/sdb1 --inode 2
//查看文件系统/dev/sdc1下存在哪些文件,i 节点是从 2 开始的,2 代表该文件系统最开始的目录。

写入完成用”rm -rf +文件名“删除文件,模拟误删除

rm -rf a.txt
rm -rf b.txt        //将两个ext3文件删除

退出目录并解除挂载然后用ex工具恢复删除的数据

 umount /test解挂载
  extundelete /dev/sdb1 --restore-all用ex恢复误删除的文件

这个方法是概率性恢复,并不是百分百恢复,所以对文件做备份一定是最优的选择


 xfs 类型文件备份和恢复

CentOS 7 系统默认采用 xfs类型的文件,xfs 类型的文件可使用 xfsdump 与 xfsrestore 工具进行备份恢复,目前市面上并没有开源的xfs文件恢复工具,但是利用备份恢复依旧是最优的选择方案。本次实验就是模拟对重要的xfs文件进行备份,在误删后,进行恢复

 xfsdump的使用限制:
  • 只能备份已挂载的文件系统
  • 必须使用root的权限才能操作
  • 只能备份XFS文件系统
  • 备份后的数据只能让xfsrestore解析
  • 不能备份两个具有相同UUID的文件系统(可用 blkid命令查看)
  • xfsdump 的命令格式为 xfsdump -f  备份存放位置   要备份的路径或设备文件

    常用选项:
     -f:指定备份文件目录

    -L:指定标签 session label

    -M:指定设备标签 media label

    -s:备份单个文件,-s 后面不能直接跟路径

创建xfs系统文件环境

#使用fdisk创建分区/dev/sdb1,格式化xfs文件系统
fdisk /dev/sdb
partprobe /dev/sdb
mkfs.xfs [-f] /dev/sdb1
mkdir /date
mount /dev/sdb1 /date/
cd /data
cp /etc/passwd ./
mkdir test
touch test/a

备份整个分区

#使用 xfsdump 命令备份整个分区
 
xfsdump -f /opt/dump_sdb1 /dev/sdb1 [-L dump_sdb1 -M sdb1]
 
#如果没有xfsdump 
rpm -qa | grep xfsdump
yum install -y xfsdump

模拟数据丢失

#模拟数据丢失并使用 xfsrestore 命令恢复文件
cd /data/
rm -rf ./*
ls
 恢复操作

xfsrestore -f /opt/dump_sdb1 /date/

对创建好的文件系统进行一整个分区的备份,存放在足够的空间中。当该分区中的重要文件被误删后,可以利用备份分区,进行数据还原。

三,日志

日志的功能

用于记录系统、程序运行中发生的各种事件

通过阅读日志,有助于诊断和解决系统故障

日志文件的分类

内核及系统日志

由系统服务rsyslog统计进行管理,日志格式基本相似

用户日志

记录系统用户登录及退出系统的相关信息

程序日志

由各种应用程序独立管理的日志文件,记录格式不统一

rsyslog软件是Centos7中帮助管理日志的

系统日志
message——系统大部分日志都存放在其中
日志文件   默认位于/var/log目录下

/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的日志操作系统安装时安装的软件信息

  • 18
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值