深入理解Linux文件系统与日志分析

  1. inode与block
  2. 硬链解与软链接
  3. 恢复误删除的文件
  4. 分析日志文件
  5. 总结

1.inode与block

 

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

inode包含文件的元信息:文件的字节数、文件拥有者的user ID、文件的Group ID、文件的读写执行权限、文件的时间戳等(不包含文件名)

 

 

 

 

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

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

一般inode表会占用文件系统磁盘空间1%

一个目录文件的内容就是一个该目录下所有文件目录项的列表

 

 文件储存小节

 

 

inode也会消耗硬盘空间,格式化的时候,操作系统自动将硬盘分成俩个区域,一个是数据区,存放文件数据;另一个是inode区,存放inode的大小,每个inode的大小一般是128字节或256字节

使用df -i命令可以查看每个硬盘分区的inode总数和已经使用的数量

inode节点的总数,在格式化时就确定了,一般是每1KB或每2KB就设置一个inode。假设一块1GB的硬盘中,每个inode结点大小为128字节,每1KB就设置一个inode,那么inode table大小就会达到128M,占整块硬盘的12.8%

inode的特殊作用

 

 

文件数据呗修改后,会重新生成一个inode号

使用inode号删除文件时需要使用

find ./ -iunm inode号 -exec rm {} \;  或者

find ./ -iunm inode号 -delete

才能删除

2.硬链解与软链接

 

 

 3.恢复误删除的文件

 

 

extundelete 是一个开源的Linux数据恢复工具,支持ext3、ext4文件系统(ext4只能在centos6版本恢复)

使用fdisk创建分区/dev/sdb2,格式化ext3文件系统

fdisk /dev/sdb

mkfs.ext3 /dev/sdb2

mkdir /test01

mount /dev/sdb2 /test01/

安装依赖包

[root@localhost ~]# yum install -y e2fsprogs-devel e2fsprogs-libs gcc gcc-c++ make

编译安装extundelete

将安装包拉入/test01目录或者

Wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2

下载

[root@localhost test01]# tar jxvf extundelete-0.2.4.tar.bz2 -C /opt/

##解压到/opt目录下

[root@localhost extundelete-0.2.4]# cd /opt/extundelete-0.2.4/ ###切换到此目录

[root@localhost extundelete-0.2.4]# ./configure  ###安装

[root@localhost extundelete-0.2.4]# make

###如果make报错,重新输入yum install -y e2fsprogs-devel e2fsprogs-libs 运行后,再输入make

[root@localhost extundelete-0.2.4]# make install

Making install in src

  /usr/bin/install -c extundelete '/usr/local/bin'

###显示此信息已经启动

[root@localhost extundelete-0.2.4]# ln -s /usr/local/bin/extundelete /usr/bin/

###建立软链接

切换回/test01目录

模拟删除并执行恢复操作

[root@localhost extundelete-0.2.4]# cd /test01

[root@localhost test01]# echo a>a

[root@localhost test01]# echo a>b

[root@localhost test01]# echo a>c

[root@localhost test01]# echo a>d

[root@localhost test01]# extundelete /dev/sdb2 --inode 2

###查看文件系统/dev/sdb2下存在哪些文件,i结点时从2开始的。2待变该文件系统最开始的目录

 

[root@localhost test01]# rm -rf a b

[root@localhost test01]# cd

[root@localhost /]# umount /test01/   ###解挂载

[root@localhost ~]# extundelete /dev/sdb2 --restore-all   ###恢复上一步误删除文件


 执行后回多出一个目录,文件恢复在 RECOVERED_FILES 目录中

 

 注:extundelete 命令只能恢复上一步误删除的文件

 

 

Centos7系统默认采用xfs类型的文件,xfs类型的文件可使用xfsdump与xfsrestore工具进行备份恢复

-f:指定备份文件目录

-L:指定标签session label

-M:指定设备标签medla label......

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

xfsdump使用限制:

  1. 只能备份已挂载的文件系统
  2. 必须使用root权限才能操作
  3. 只能备份XFS文件系统
  4. 备份后的数据只能让xfsrestore解析
  5. 不能备份俩个具有相同uuid的文件系统(可使用blkid命令查看)

使用fdisk创建分区/dev/sdb1,格式化xfs文件系统

fdisk /dev/sdb

mkfs.xfs /dev/sdb1

[root@localhost ~]# mkdir /test02

[root@localhost ~]# mount /dev/sdb1 /test02

[root@localhost ~]# cd /test02

[root@localhost test02]# cp /etc/passwd ./   ###复制到当前目录

[root@localhost test02]# mkdir test

[root@localhost test02]# touch test/a

使用sfsdump命令备份整个分区

[root@localhost test02]# yum install xfsdump -y

###安装xfsdump命令

[root@localhost test02]# xfsdump -f /opt/dump_sdb /dev/sdb1 -L dump_sdb1 -M sdb1

 

 

模拟数据丢失并使用sfsrestore 命令恢复文件

[root@localhost test02]# rm -rf ./*

[root@localhost test02]# xfsrestore -f /opt/dump_sdb /test02

###恢复文件

 

 4.分析日志文件

 

 

 

内核及公共消息日志:记录Linux内核消息及各种应用程序的公共日志消息,包括启动,IO错误、网络错误、程序故障等

对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获得相关的事件记录信息

计划任务日志:记录crond计划任务产生的事件信息

系统引导日志:记录Linux系统在引导过程中的各种事件信息

邮件系统日志:记录进入或发出系统的电子邮件活动

用户登陆日志:

lastlog:记录每个用户最近的登录事件。二进制格式

secure:记录用户认真相关的安全事件信息

wtmp:记录每个用户登录,注销及系统启动和停机事件。二进制格式

btmp:记录失败的、错误的登陆尝试及验证事件。二进制格式

vim /etc/rsyslog.conf    ###查看日志文件的配置文件

 

 

 

 

公共日志/var/log /messages文件的记录格式

时间标记:消息发出的日期和时间。

主机名:生成消息的计算机的名称

子系统名称:发出消息的应用程序的名称。

消息:消息的具体内容

程序自己维护日志记录,httpd网站服务程序使用两个日志文件:

access_log :  #记录客户访问事件

error_iog    #记录错误事件。

 

[root@localhost log]# tail -f secure

###跟踪查看用户登录信息


 

 日志管理

 

 

5.总结

block和inode

硬链接与软链接

恢复误删除的文件

Linux主要包含的日志文件

Linux系统的日志消息级别

Linux系统中用户日志的查询命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值