一、Linux文件体系

1、 inode 与 block

  • 文件数据包括元信息与实践信息;
  • 文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节。
  • 一个文件有必要占用一个inode, 而且至少占用一个block

1.1 block:(块)的概念

  • 接连的八个扇区组成一个block(4k);
  • 是文件存取的最小单位
  • 操作体系读取硬盘的时分,是一次性接连读取多个扇区,即一个块一个块的读取

1.2 inode:(索引节点)的概念

  • 存储文件元信息( 比如文件的创立者、创立日期、文件巨细、文件权限等)的区域就叫做inode
  • 中文译名为“索引节点”,也叫i节点;
  • 用于存储文件元信息
  • inode不包括文件名。文件名是存放在目录当中的

1.3 inode和block的联系

Linux文件系统与日志分析

  • Linux 体系中一切皆文件,因此目录也是一种文件
  • 每个inode都有一个号码,操作体系用inode号码来辨认不同的文件。Linux 体系内部不运用文件名,而运用inode号码来辨认文件。关于体系来说,文件名仅仅inode号码便于辨认的别称,文件名和inode号码是一 一对应联系, 每个inode号码对应一个文件名
  • 当用户在Linux体系中试图拜访一个文件时,体系会先依据文件名去查找它对应的inode号码;经过inode号码, 获取inode信息;依据inode信息,看该用户是否具有拜访这个文件的权限; 如果有,就指向相对应的数据block,并读取数据

1.4 检查文件名对应的inode号码的方式

检查文件名对应的inode号码:           ls -i 文件名
检查文件信息中的inode号码:            stat 文件名

1.4.1 实例操作

Linux文件系统与日志分析

1.5  inode包括文件的元信息(见上图中stat 123展示的信息)

  • 文件的字节数
  • 文件具有者的User ID
  • 文件的Group ID
  • 文件的读、写、履行权限
  • 文件的时刻戳等

1.6 Linux体系文件三个首要的时刻特点

  • ctime(change time):最终一次改动文件或目录(特点)的时刻
  • atime(access time):最终一次拜访文件或目录的时刻
  • mtime(modify time):最终一次修正文件或目录(内容)的时刻

1.7.用户经过文件名翻开文件时,体系内部的进程

  • 体系找到这个文件名对应的inode号码
  • 经过inode号码, 获取inode信息
  • 依据inode信息,找到文件数据所在的block,读出数据

1.8 硬盘分区后的结构

Linux文件系统与日志分析

1.9 拜访文件的简略流程

Linux文件系统与日志分析

1.10.inode的巨细

  • inode也会耗费硬盘空间:每个inode的巨细一般是128字节或许256字节;
  • 格局化文件体系时确认inode的总数;
  • 运用df -i指令能够检查每个硬盘分区的inode总数和现已运用的数量

Linux文件系统与日志分析

1.11 inode特点

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

  • 文件名包括特别字符,或许无法正常删去。这时直接删去inode,能够起到删去文件的效果;
  • 移动文件或重命名文件,仅仅改动文件名,不影响inode 号,但是仿制的话,会生成一个新的inode号
  • 翻开一个文件今后,体系就以inode号码来辨认这个文件,不再考虑文件名。
  • 文件数据被修正保存后,会生成一个新的inode 号码

1.11.1 删去inode号的方法:

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

find . /-inum 68791300 | 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来说十分有用

xargs 一般是和管道一起运用:

​ 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将报错

1.11.2 实例操作

1.11.2.1 移动、仿制或许重命名文件,看inode号是否有改动(只有仿制文件时inode号会发生改动)

Linux文件系统与日志分析

1.11.2.2 修正文件,看inode号是否会改动(修正之后inode号会改动)

Linux文件系统与日志分析

2、硬链接和软链接

  • 为文件或目录建立链接文件

2.1 链接文件的分类和比照

操作和范围 软链接 硬链接
删去原始文件后 失效 仍然可用
运用范围 适用于文件或目录 只可用于文件
保存方位 与原始文件能够位于不同的文件体系中 有必要与原始文件在同一个文件体系(如一个Linux分区)内

2.2 软硬链接的格局

硬链接
ln  源文件  方针方位
软链接
ln [-s]  源文件或许目录...   链接文件或许方针方位

3.inode节点耗尽毛病处理

inode也会耗费硬盘空间,当inode的空间耗费完今后,即使硬盘还有空间,也无法运用

3.1 操作过程格局

3.1 操作过程格局

#运用fdisk创立分区/dev/sdb1,分区巨细10M即可
fdisk /dev/ sdb .
mkfs.ext4 /dev/ sdb1    #也能够用xfs类型,但是在做实验室创立inode号的时分要比inode总数多创立100多个,或许是计算问题,这儿主张用ext4或许ext3便利实验
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

3.2 实例操作

3.2.1 新增磁盘并分区

Linux文件系统与日志分析

Linux文件系统与日志分析


Linux文件系统与日志分析

3.2.2 格局化并挂载

Linux文件系统与日志分析

Linux文件系统与日志分析

3.2.3 运用for循环,创立文件,将inode空间占满(模仿inode节点耗尽毛病)

Linux文件系统与日志分析

Linux文件系统与日志分析

3.2.4 删去文件康复

Linux文件系统与日志分析

二、康复误删去的文件(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、模仿删去并履行康复操作

cd /data
  echo 111 > 123.txt
  echo 222 > 234.txt
  echo 333 > 456.txt
ls
extundelete /dev/sdb1 --inode 2
#检查文件体系/dev/sdc1下存在哪些文件,i节点是从2开端的,2代表该文件体系最开端的目录
rm-rf 123.txt  234.txt  456.txt
extundelete /dev/sdd1 -- inode 2
cd ~
umount /data/
extundelete /dev/sdb1 --restore-all
#康复/dev/sdc1文件体系下的一切内容
#在当时目录下会出现一-个RECOVERED_ FILES/目录,里边保存了现已康复的文件
ls RECOVERED_FILES/</code>

3.实例操作

3.1 增加一块20G的硬盘,并进行分区

Linux文件系统与日志分析
  

 

Linux文件系统与日志分析

3.2 对分区进行格局化并进行挂载

Linux文件系统与日志分析

3.3 装置两个依靠包

Linux文件系统与日志分析

3.4 extundelete的装置包的传输以及解压

Linux文件系统与日志分析

Linux文件系统与日志分析

3.5 编译装置

Linux文件系统与日志分析

3.6 在挂载目录下创立文件以及内容,并检查

Linux文件系统与日志分析

Linux文件系统与日志分析

3.7 删去新建文件,并进行检查是否已删去(模仿毛病)

Linux文件系统与日志分析

3.8 解除挂载并康复文件

Linux文件系统与日志分析

Linux文件系统与日志分析

三、日志文件

1、 日志的功能

• 用于记载体系、程序运转中发生的各种事情
• 经过阅览日志,有助于确诊和解决体系毛病

2、 日志文件的分类

2.1 内核及体系日志

◆由体系服务rsyslog一致进行办理 ,日志格局根本相似
◆主装备文件/etc/rsyslog.conf

2.2 用户日志.

◆记载体系用户登录及退出体系的相关信息

2.3 程序日志

◆由各种应用程序独立办理的日志文件,记载格局不一致
(由开发人员界说)

3、 日志保存方位

默许位于: /var/log目录下

4、 首要日志文件介绍

4.1 内核及公共音讯日志

✔ /var/log/messages
记载Linux内核音讯及各种应用程序的公共日志信息,包括发动、Io过错、网络过错、程序毛病等

关于未运用独立日志文件的应用程序或服务,一般都能够从该日志文件中取得相关的事情记载信息

4.2 计划任务日志

✔ /var/log/cron
记载crond计划任务产生的事情信息

4.3 体系引导日志

✔ /var/log/dmesg
记载Linux体系在引导进程中的各种事情信息

4.4 邮件体系日志

✔ /var/log/maillog
记载进入或宣布体系的电子邮件活动

4.5 用户登录日志

✔ /var /log/lastlog
记载每个用户最近的登录事情,二进制格局

✔ /var/log/secure
记载用户认证相关的安全事情信息

✔ /var/log/wtmp
记载每个用户登录、注销及体系发动和停机事情,二进制格局

✔ /var/run/btmp
记载失利的、过错的登录测验及验证事情,二进制格局

5、日志装备文件和日志音讯等级

5.1 日志装备文件

vim /etc/rsyslog.conf                   #检查rsyslog.conf装备文件
* . info;mail.none;authpriv.none;cron.none  /var/log/messages
*.info          #表明info等级及以上的一切等级的信息都写到对应的日志文件里
mail.none       #表明某事情的信息不写到日志文件里(这儿比如是邮件)

5.2 Linux体系内核日志音讯的优先等级(数字等级越小,优先级越高,音讯越重要):

等级 音讯 等级 详细描绘
0 EMERG 紧迫 会导致主机体系不可用的状况
1 ALERT 正告 有必要立刻采取措施解决的问题
2 CRIT 严峻 比较严峻的状况
3 ERR 过错 运转出现过错
4 WARNING 提示 或许影响体系功能,需求提示用户的重要事情
5 NOTICE 留意 不会影响正常功能,但是需求留意的事情
6 INFO 信息 一般信息
7 DEBUG 调试 程序或体系调试信息等

6.剖析东西

  • users、who、 W、last、 lastb
  • last指令用于查询成功登录到体系的用户记载
  • lastb指令用于查询登录失利的用户记载

7 程序日志剖析:由相应的应用程序独立进行办理

Web服务:/var/log/httpd/

  • access_log ——记载客户拜访事情
  • error_log ——记载过错事情

署理服务:/var/log/squid/

  • access.log、cache.log

剖析东西

  • 文本检查、grep过来检索、Webmin办理套件中检查
  • awk、sed等文本过滤、格局化修改东西
  • Webalizer、Awstats等专用日志剖析东西

8.日志办理战略

及时做好备份和归档

延伸日志保存期限

操控日志拜访权限

  • 日志中或许会包括各类敏感信息,如账户和口令等

会集办理日志

  • 服务器的日志文件发到一致-的日志文件服务器
  • 便于日志信息的统- -收集、 收拾和剖析
  • 根绝日志信息的意外丢失、歹意篡改或删去