加入收藏 | 设为首页 | 会员中心 | 我要投稿 南京站长网 (https://www.025zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

Linux文件系统与日志分析

发布时间:2023-01-29 14:01:00 所属栏目:Unix 来源:转载
导读: 目录
引言:inode 是 linux/unix 文件系统的基础,我们这篇主要写了Linux文件系统以及日志文件,我们要做好日志的管理策略,控制日志的访问权限,以及集中管理日志,及时备份和归档。
1、in

目录

引言:inode 是 linux/unix 文件系统的基础,我们这篇主要写了Linux文件系统以及日志文件,我们要做好日志的管理策略,控制日志的访问权限,以及集中管理日志,及时备份和归档。

1、inode与block概述

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

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

实际数据:文件编写的内容

block(块)

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

是文件存取的最小单位

inode(索引节点)

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

用于存储文件元信息

unix结构分析_莱昂氏unix源代码分析下载_unix环境高级编程和unix网络编程哪本好

2、inode的内容 inode包含文件的元信息

文件的字节数

文件拥有者的User ID

文件的Group ID

文件的读、写、执行权限

文件的时间戳

总结:文件数据存在块中 ,文件元信息存在inode

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

查看文件名对应的inode 号有两种方式:

ls -i 文件名

stat 文件名

unix结构分析_莱昂氏unix源代码分析下载_unix环境高级编程和unix网络编程哪本好

df -i 查看inode节点

莱昂氏unix源代码分析下载_unix结构分析_unix环境高级编程和unix网络编程哪本好

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

ctime (change time)

最后一次改变文件或目录(属性)的时间,当文件的状态被修改时,更新这个时间

atime (access time)

最后一次访问文件或目录的时间,当文件内容被访问时,更新这个时间

mtime (modify time)

最后一次修稿文件或目录(内容)的时间,当文件的数据内容被修改时,更新这个时间

unix结构分析_unix环境高级编程和unix网络编程哪本好_莱昂氏unix源代码分析下载

莱昂氏unix源代码分析下载_unix环境高级编程和unix网络编程哪本好_unix结构分析

莱昂氏unix源代码分析下载_unix环境高级编程和unix网络编程哪本好_unix结构分析

2.2、目录文件的结构

目录也是一种文件

目录文件的结构

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

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

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

莱昂氏unix源代码分析下载_unix结构分析_unix环境高级编程和unix网络编程哪本好

inode号码

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

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

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

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

unix环境高级编程和unix网络编程哪本好_unix结构分析_莱昂氏unix源代码分析下载

查看inode号码的方法

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

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

2.3、硬盘分区后的结构

莱昂氏unix源代码分析下载_unix结构分析_unix环境高级编程和unix网络编程哪本好

3、inode的大小

inode也会消耗硬盘空间

每个inode的大小

一般时128字节或256字节

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

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

unix结构分析_莱昂氏unix源代码分析下载_unix环境高级编程和unix网络编程哪本好

例:需求:inode节点消耗故障处理

创建一个硬盘并分一个30M的分区

unix环境高级编程和unix网络编程哪本好_莱昂氏unix源代码分析下载_unix结构分析

格式化硬盘并进行挂载

unix环境高级编程和unix网络编程哪本好_莱昂氏unix源代码分析下载_unix结构分析

查看inode节点使用情况

莱昂氏unix源代码分析下载_unix环境高级编程和unix网络编程哪本好_unix结构分析

unix结构分析_莱昂氏unix源代码分析下载_unix环境高级编程和unix网络编程哪本好

unix环境高级编程和unix网络编程哪本好_unix结构分析_莱昂氏unix源代码分析下载

删除无用的文件减少inode节点占用

unix环境高级编程和unix网络编程哪本好_莱昂氏unix源代码分析下载_unix结构分析

4、inode的特殊作用

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

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

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

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

例:删除文件的inode号也可以正常删除文件

unix环境高级编程和unix网络编程哪本好_unix结构分析_莱昂氏unix源代码分析下载

第二种删除inode号方法

unix环境高级编程和unix网络编程哪本好_莱昂氏unix源代码分析下载_unix结构分析

例:cp一个文件inode号会改变,mv一个文件时inode号不会改变(若移动到不同磁盘会改变)

inode会改变

unix结构分析_莱昂氏unix源代码分析下载_unix环境高级编程和unix网络编程哪本好

inode不会改变

莱昂氏unix源代码分析下载_unix结构分析_unix环境高级编程和unix网络编程哪本好

移动到磁盘上inode会改变

unix结构分析_unix环境高级编程和unix网络编程哪本好_莱昂氏unix源代码分析下载

扩展:echo一个1.txt inode号也不会改变

莱昂氏unix源代码分析下载_unix环境高级编程和unix网络编程哪本好_unix结构分析

扩展:在vim里编辑文件,inode值会改变

unix环境高级编程和unix网络编程哪本好_unix结构分析_莱昂氏unix源代码分析下载

unix结构分析_莱昂氏unix源代码分析下载_unix环境高级编程和unix网络编程哪本好

5、链接文件

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

链接文件分类

软链接

硬链接

删除原始文件后

失效

仍旧可用

使用范围

适用于文件或目录

只可用于文件

保存位置

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

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

硬链接

ln 源文件 目标位置

软连接

ln -s 源文件或目录 链接文件或目录位置

6、恢复EXT类型的文件

编译安装extundelete软件包

extundelete是一个开源的Linux 数据恢复工具,支持ext3、ext4文件系统

(ext4只能在centos6版本恢复)

实验:需求模拟删除并执行恢复操作

unix环境高级编程和unix网络编程哪本好_unix结构分析_莱昂氏unix源代码分析下载

unix环境高级编程和unix网络编程哪本好_unix结构分析_莱昂氏unix源代码分析下载

安装依赖包

莱昂氏unix源代码分析下载_unix环境高级编程和unix网络编程哪本好_unix结构分析

上传压缩包并解压

unix环境高级编程和unix网络编程哪本好_unix结构分析_莱昂氏unix源代码分析下载

使用源码目录中configure脚本,并设置安装路径,编译安装

莱昂氏unix源代码分析下载_unix环境高级编程和unix网络编程哪本好_unix结构分析

创建软链接

模拟删除并执行恢复操作

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

unix结构分析_unix环境高级编程和unix网络编程哪本好_莱昂氏unix源代码分析下载

莱昂氏unix源代码分析下载_unix结构分析_unix环境高级编程和unix网络编程哪本好

extundelete /dev/sdb1 --restore-all #恢复/dev/sdb1 文件系统下的所有内容

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

unix环境高级编程和unix网络编程哪本好_unix结构分析_莱昂氏unix源代码分析下载

莱昂氏unix源代码分析下载_unix环境高级编程和unix网络编程哪本好_unix结构分析

7、恢复XFS类型的文件

xfsdump 命令格式

xfsdump -f 备份存放位置 要备份的路径或设备文件

xfsdump备份级别 (默认为0)

0 :完全备份

1-9 :增量备份

xfsdump 常用选项 -f 、-L、-M、-s

xfsrestore 命令格式

xfsrestore -f 恢复文件的位置 存放恢复后文件的位置

xfs类型文件备份和恢复

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

xfsdump的备份级别有两种: 0表示完全备份; 1-9表示增量备份。xfsdump的备份级别默认为0.

-f: 指定备份文件目录

-L: 指定标签session label

-M: 指定设备标签media labe........

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

xfsdump 使用限制

只能备份已挂载的文件系统

必须使用root 的权限才能操作

只能备份xfs文件系统

备份后的数据只能让xfsrestore解析

不能备份两个具有相同UUID的文件系统(可用blkid命令查看)

实验:需求:模拟恢复误删除的文件xfs

使用fdisk创建分区/dev/sdb2

unix结构分析_unix环境高级编程和unix网络编程哪本好_莱昂氏unix源代码分析下载

格式化xfs文件系统并挂载到/mnt下

莱昂氏unix源代码分析下载_unix环境高级编程和unix网络编程哪本好_unix结构分析

创建测试用的目录和文件,并在文件里写入内容

unix环境高级编程和unix网络编程哪本好_unix结构分析_莱昂氏unix源代码分析下载

使用xfsdump命令备份整个分区

交互式

莱昂氏unix源代码分析下载_unix环境高级编程和unix网络编程哪本好_unix结构分析

无交互式

莱昂氏unix源代码分析下载_unix环境高级编程和unix网络编程哪本好_unix结构分析

模拟数据丢失,使用xfsrestore命令恢复文件

unix结构分析_莱昂氏unix源代码分析下载_unix环境高级编程和unix网络编程哪本好

unix环境高级编程和unix网络编程哪本好_莱昂氏unix源代码分析下载_unix结构分析

增量备份

unix环境高级编程和unix网络编程哪本好_莱昂氏unix源代码分析下载_unix结构分析

unix结构分析_莱昂氏unix源代码分析下载_unix环境高级编程和unix网络编程哪本好

莱昂氏unix源代码分析下载_unix结构分析_unix环境高级编程和unix网络编程哪本好

备份可以做周期性计划

8、日志文件

日志的功能

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

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

8.1、日志文件的分类

内核及系统日志

由系统服务rsyslog统一进行管理unix结构分析,日志格式基本相似

用户日志

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

程序日志

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

日志保存位置

默认位置:/var/log 目录下

8.2、主要日志文件介绍

内核及公共消息日志

/var/log/messages

计划任务日志

/var/log/cron

系统引导日志

/var/log/dmesg

邮件系统日志

/var/log/maillog

用户登录日志

/var/log/lastlog

/var/log/secure

/var/log/wtmp

/var/log/btmp

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

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

常见的一些日志文件

内核及公共消息日志

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

计划任务日志

/var/1og/cron:记录crond计划任务产生的事件信息

系统引导日志

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

邮件系统日志

/var/1og/maillog:记录进入或发出系统的电子邮件活动

用户登录日志

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

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

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

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

last 查看用户登录相关信息

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

unix环境高级编程和unix网络编程哪本好_莱昂氏unix源代码分析下载_unix结构分析

*.info #表示info等级及以上的所有等级的信息都写到对应的日志文件里

mail.none #表示某事件的信息不写到日志文件里(这里比如是邮件)

authpriv :认证

内核及系统日志由系统服务rsyslog统一管理

软件包: rsyslog-7.4.7-16.el7.x86_64

主要程序: /sbin/rsyslogd

配置文件: /etc/rsyslog.conf

8.3、日志消息的级别

Linux系统内核日志消息的优先级别(数字等级越小,优先级越高,消息越重要)

级号

消息

级别

说明

0

EMERG

紧急

会导致主机系统不可用的情况

1

ALERT

警告

必须马上采取措施解决的问题

2

CRIT

严重

比较严重的情况

3

ERR

错误

运行出现错误

4

WARNING

提醒

可能会影响系统功能的事件

5

NOTICE

注意

不会影响系统但值得注意

6

INFO

信息

一般信息

7

DEBUG

调试

程序或系统调试信息等

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

(编辑:南京站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章