Linux文件系统与日志分析

网友投稿 244 2022-11-02

Linux文件系统与日志分析

inode与block

硬链接与软链接

恢复误删除的文件

分析日志文件

1.inode和block概述

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

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

■block (块)

●连续的八个扇区组成一个block数据.block

●是文件存取的最小单位

■inode (索引节点)

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

●用于存储文件元信息

1-1■inode包含文件的元信息

●文件的字节数

●文件拥有者的User ID(不包含文件名)

●文件的Group ID

●文件的读、写、执行权限

●文件的时间戳

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

●示例: stat aa.txt

查看文件,调用inode号

1-2■Linux系统文件三个主要的时间属性

●ctime(change time)

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

●atime(access time)

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

●mtime(modify time)

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

占大小的都会变,更改属主,属组

1-3inode的内容

■目录文件的结构

●目录也是一种文件

●目录文件的结构

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

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

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

复制相当于两个文件,inode号会变

2.inode的号码

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

1.系统找到这个文件名对应的inode号码

2.通过inode号码,获取inode信息

3.根据inode信息,找到文件数据所在的block,读出数据

■查看inode号码的方法

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

Is -i aa.txt

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

stat aa.txt

2-1inode的大小

■inode也会消耗硬盘空间

●每个inode的大小

●一般是128字节或256字节

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

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

2-2inode的特殊作用​

■由于inode号码与文件名分离,导致一些Unix/Linux系统具有以下的现象

当文件名包含特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件

●移动或重命名文件时,只改变文件名,不影响inode号码

●打开一个文件后,系统通过inode号码来识别该文件,不再考虑文件名

查找inode 号进行删除

3.链接文件

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

链接文件分类

硬链接 ln 源文件 目标位置

软链接 ln -s 源文件或目录


软链接

硬链接

删除原始文件后

失效

仍旧可用

使用范围

适用于文件或目录

只用于文件

保存位置

与原始文件可以位于不同的文件系统中

必须与原始文件在同一个文件系统内(如一个Linux分区)

4.恢复xfs/ext文件

实验:

创建一块硬盘分区

模拟节点占满

节点占用满后要删除,就可以正常创建

第二种方法

4.ext文件恢复

1.安装依赖包

2.把包拖进去

3.解压压缩包

4.切换到当前目录,查看

5.进行配置

两个inodes恢复了

5.日志

内核及系统日志服务rsyslog统一管理,主配置文件为/etc/rsyslog.conf

Linux操作系统本身和大部分服务器程序的日志文件都默认放在/var/log/下

常见的一些日志文件

/var/log/messages     记录 Linux 内核消息及各种应用程序的公共日志信息,包括启动、IO错误、网络错误、程序故障等。对于未使用独立日志文件的应用程序或服务,一般都可以从该日志文件中获得相关的事件记录信息。

(2) 计划任务日志

/var/log/cron  记录 crond 计划任务产生的事件信息。

(3) 系统引导日志

/var/log/dmesg    记录 Linux 系统在引导过程中的各种事件信息。

(4) 邮件系统日志

/var/log/maillog    记录进入或发出系统的电子邮件活动。

(5) 用户登录日志

/var/log/secure    记录用户认证相关的安全事件信息。

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

/var/log/wtm     记录每个用户登录、注销及系统启动和停机事件。二进制格式

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

日志分析工具

user

命令只是简单地输出当前登录的用户名称,每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示与其相同的次数。

who

命令用于报告当前登录到系统中的每个用户的信息。使用该命令,系统管理员可以查看当前系统存在哪些不合法用户,从而对其进行审计和处理。who 的默认输出包括用户名、终端类型、登录日期及远程主机。

w

命令用于显示当前系统中的每个用户及其所运行的进程信息,比 users、who 命令的输出内容要丰富一些。

last

命令用于查询成功登录到系统的用户记录,最近的登录情况将显示在最前面。通过last 命令可以及时掌握 Linux 主机的登录情况,若发现未经授权的用户登录过,则表示当前主机可能已被入侵。

lastb

命令用于查询登录失败的用户记录,如登录的用户名错误、密码不正确等情况都将记录在案。登录失败的情况属于安全事件,因为这表示可能有人在尝试猜解你的密码。除了使用 lastb 命令查看以外,也可以直接从安全日志文件 /var/log/secure 中获得相关信息。

journalctl

工具是 centos7 才有的工具。Systemd 统一管理所有 Unit 的启动日志带来的好处就是可以只用 journalctl 一个命令查看所有日志。日志的配置文件是 /etc/systemd/journald.conf

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:处理SSL certificate problem self signed certificate
下一篇:Pixel 2为何抛弃耳机接口,谷歌这么说
相关文章

 发表评论

暂时没有评论,来抢沙发吧~