Linux文件系统与日志分析

本文详细介绍了Linux文件系统的inode和block概念,包括inode的元信息、时间属性和inode管理。讨论了软链接和硬链接的创建与inode耗尽的处理方法。此外,还介绍了如何使用extundelete工具恢复EXT类型文件系统的误删除文件,以及Linux系统日志的分析,包括sysklogd和rsyslog服务的功能和应用场景。
摘要由CSDN通过智能技术生成

目录

一、inode和block概述

1、inode

1)inode包含文件的元信息

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

3)Linux目录文件的结构

4)inode号码

5)inode的大小

6)删除inode号

7)cp命令与inode

8)rm命令

9)mv和inode

二、软链接和硬链接

1、创建链接文件

2、inode节点耗尽故障处理

1)操作步骤

2)实例演示

 三、恢复误删除文件(EXT类型)

1、编译安装extundelete软件包

2、模拟删除并执行恢复操作

四、日志分析

1、系统日志

1)sysklogd 系统日志服务

2)rsyslog系统日志服务


一、inode和block概述

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

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

block(块)

连续的八个扇区组成一个block

是文件存取的最小单位

inode(索引节点)

中文译名为“索引节点”,也叫i节点

用于存储文件元信息 (比如文件的创建者、创建日期、文件大小、文件权限等)

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

当用户在Linux系统中试图访问一个文件时,系统会先根据文件名去查找它对应的inode号码;通过inode号码,获取inode信息;根据inode信息,看该用户是否具有访问这个文件的权限;如果有,就指向相对应的数据block,并读取数据。

1、inode

1)inode包含文件的元信息

文件的字节数

文件拥护者的User ID

文件的Group ID

文件的读、写、执行权限

文件的时间戳

文件的类型

链接数

有关文件的其他数据

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

ctime (change time)

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

atime (access time)

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

mtime (modify time)

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

  • 不打开文件的话,atime不变。例如使用echo追加内容,atime不会变,因为文件没有被打开访问。
  • 修改文件内容的话,mtime会变,ctime也会变。
  • 如果只修改文件的权限,ctime变,mtime不变。

3)Linux目录文件的结构

文件名1inode号1
文件名2inode号2
......

目录也是一种文件

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

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

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

 对于系统来说,文件名只是inode号码便于识别的别称,文件名和inode号码是一 一对应关系,每个inode号码对应一个文件名

4)inode号码

1.用户访问文件时 先去查找 自己 文件夹中的目录项

2.文件名和inode之间对应的关系

3.通过 inode号利用指针 去指向 实际数据

查看inode号码

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

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

5)inode的大小

inode也会消耗硬盘空间

每个inode的大小一般是128字节或256字节

格式化文件系统时确定inode的总数

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

6)删除inode号

find ./ -inum 68201002 -exec rm -i {} \;
find ./ inum 68201002 -delete

find . /-inum 68201002 | xargs rm -rf

find命令

find pathname -option [-print ] [ -exec | -ok command ] {} ;
find命令的参数;
pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为command { } ;,注意{ }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

xargs命令

构造参数列表并运行命令,即将接收的参数传递给后面的command 命令执行

将多行输入转换为单行 

将输入参数整理后,去除换行符,以一个列表形式处理

避免参数过长引发的问题,使用xargs -n 参数适当控制,对于经常产生大量输出的命令如find、locate和grep来说非常有用

XXcomand | xargs -x comand initial-args

echo "/etc/inittab" | cat   # 直接将标准输入的内容传递给cat
echo "/etc/inittab" | xargs cat   # 将标准输入的内容经过xargs处理后传递给cat
find /etc -maxdepth 1 -name "*.conf" -print0 | xargs -0 -i grep "hostname" -l {}  # 将搜索的文件传递给grep的参数位进行搜索,若不使用xargs,则grep将报错

7)cp命令与inode

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

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

拷贝数据生成新的文件

8)rm命令

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

把数据块放在空闲列表中

删除目录项

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

9)mv和inode

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

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

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

二、软链接和硬链接

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

1、创建链接文件

ln 源文件 目标文件                                //创建硬链接文件

ln -s 源文件或目录  目标文件                //创建软链接文件

(创建软链接时,源文件要使用绝对路径)

2、inode节点耗尽故障处理

inode会消耗硬盘空间,当inode的空间消耗完以后,即便硬盘还有空间,也无法使用

1)操作步骤

使用fdisk创建分区/dev/sdb1,分区大小30M

fdisk /dev/ sdb

mkfs.ext4 /dev/ sdb1

mkdir /data mount /dev/sdb1 /data

df -i

模拟inode节点耗尽故障

for ( (i=1; i<=2549; i++) )
>do
>touch /test/ file$i
>done<br><br>或者直接touch {1. . 2549} . txt
 
df -i
df -hT

删除文件恢复

rm -rf /data/ *
df -i
df -hT

2)实例演示

新增磁盘并分区

 

 格式化并挂载

 

 利用for循环创建文件,将inode空间占满,模拟inode节点耗尽故障

 可用inode号为0

 无法创建文件

删除占用文件后,创建成功

 三、恢复误删除文件(EXT类型)

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

1、编译安装extundelete软件包

安装依赖包

e2fsprogs-libs-1. 41.12-18.el6.x86_ 64.rpm

e2fsprogs-devel-1 .41.12-18.el6.x86_ _64.rpm

配置、编译及安装

extundelete-0.2.4.tar.bz2

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

 

fdisk /dev/sdb
partprobe /dev/sdb
mkfs.ext3 /dev/ sdb1
mkdir /data
mount /dev/sdb1 /data
df -hT

安装依赖包

yum -y install e2fsprogs-devel e2 fsprogs-libs

编译安装extundelete

cd /opt
wget http: //nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2
 
tar jxvf extundelete-0.2.4.tar.bz2
cd extundelete-0.2.4/
./configure --prefix=/usr/ local/jz/ && make && make install
 
ln -s /usr/ local/jz/bin/* /usr/bin/

2、模拟删除并执行恢复操作

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

cd /data
  echo 111 > 123.txt
  echo 222 > 234.txt
  echo 333 > 456.txt
ls
extundelete /dev/sdb1 --inode 2

恢复/dev/sdc1文件系统下的所有内容

rm-rf 123.txt  234.txt  456.txt
extundelete /dev/sdd1 -- inode 2
cd ~
umount /data/
extundelete /dev/sdb1 --restore-all

在当前目录下会出现一-个RECOVERED_ FILES/目录,里面保存了已经恢复的文件

ls RECOVERED_FILES/</code>

四、日志分析

1、系统日志

Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息

日志记录的内容

历史事件:时间,地点,人物,事件

日志级别:事件的关键性程度,Loglevel

日志文件所处的位置都在/var/log目录下,前提是没有对日志配置文件/etc/syslog.conf进行过特别的配制

1)sysklogd 系统日志服务

CentOS5之前版本采用的日志管理系统服务

  syslogd:system application 记录应用日志

  klogd:linux kernel记录内核日志

2)rsyslog系统日志服务

rsyslog是CentOS6以后版本的系统管理服务:它提供了高性能,出色的安全性和模块化设计

优点

持多线程

支持TCP、SSL、TLS、RELP等协议

强大的过滤器,可实现过滤日志信息中的任意部分

支持自定义输出格式

适用于企业级别日志记录需求

模块化

Linux系统内核日志消息的优先级别

消息等级号级别说明
EMERG0紧急会导致主机系统不可用的情况
ALERT1警告必须马上采取解决措施的问题
CRIT2严重比较严重的情况
ERR3错误运行出现错误,一般达到ERR等级的信息已经可以影响到服务成系统的运行了
WARNING4提醒可能会影响系统功能的事件
NOTICE5注意不会影响系统但需要注意
INFO6信息一般信息
DEBUG7调试程序或系统调试信息等

服务名称

服务名称说明
auth(LOG_AUTH)安全和认证相关消息 (不推荐使用authpriv替代)
authpriv(LOG_AUTHPRIV)安全和认证相关消息(私有的)
cron (LOG_CRON)系统定时任务cront和at产生的日志
daemon (LOG_DAEMON)与各个守护进程相关的曰志
ftp (LOG_FTP)ftp守护进程产生的曰志
kern(LOG_KERN)内核产生的曰志(不是用户进程产生的)
Iocal0-local7 (LOG_LOCAL 0-7)为本地使用预留的服务
lpr (LOG_LPR)打印产生的日志
mail (LOG_MAIL)邮件收发信息
news (LOG_NEWS)与新闻服务器相关的日志
syslog (LOG_SYSLOG)存syslogd服务产生的曰志信息(虽然服务名称己经改为reyslogd,但是很多配罝依然沿用了syslogd服务的,所以这里并没有修改服务名称)
user (LOG_USER)用户等级类别的日志信息
uucp (LOG_UUCP)uucp子系统的日志信息,uucp是早期Linux系统进行数据传递的协议,后来也常用在新闻组服务中

分析工具

user、who、W、last、lastb

last命令用于查询成功登录到系统的用户记录

lastb命令用于查询登陆失败的用户记录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值