发表于 2024-7-10 22:48:39

云计算【第一阶段(24)】Linux文件体系与日记分析

一、文件与存储体系的inode与block

1.1、硬盘存储



[*]最小存储单位:扇区(sector)


[*]

[*]每个扇区巨细:512字节

1.2、文件存取



[*]最小存取单位:块(block)
[*]连续八个扇区构成:块(block)
[*]

[*]每个块巨细:4K

[*]文件数据:实际数据与元信息
[*]操作体系读取硬盘的时间,是一次性连续读取多个扇区,即一个块一个块的读取的。
[*]文件数据包括实际数据与元信息(雷同文件属性),文件数据存储在“块"中
1.3、inode



[*]定义:存储文件元信息的地区
[*]包含:创建者、创建日期、文件巨细、文件权限等的地区
[*]特点:


[*]

[*]一个文件必须占用一个inode
[*]格式化文件体系时确定inode的总数
[*]至少占用一个block
[*]不包含文件名,文件名是存放在目次当中的。

元信息包括


[*]文件的字节数
[*]文件拥有者的userid
[*]文件的groupid
[*]文件的读,写,实验权限
[*]文件的时间戳
1.4、文件名与inode



[*]文件名存放位置:目次
[*]译名为"索引节点",也叫i节点
[*]inode号码:操作体系辨认文件的唯一标识,一个文件必须占用一个inode,并且至少占用一个block。
[*]每个inode都有一个号码,操作体系用inode号码来辨认不同的文件。Linux体系内部不使用文件名,而使用inode号码来辨认文件。
[*]访问文件流程:

[*]根据文件名查找inode号码
[*]通过inode号码获取inode信息
[*]检查用户权限
[*]指向数据block并读取数据

1.4.1、硬盘分区后的结构

https://img-blog.csdnimg.cn/direct/c122702781804d27928880417f88491e.png
文件夹的indoe号中包括当前文件夹中文件名字和文件的indoe号
先确定文件夹后再通过indoe找到block,如果一个block放不下数据,则可以占用多个block.
比方,有一个10kb的文件需要存储,
则会占用3个block(默认一个是4k),虽然最后一个block不能占满,
但也不能再放入其他文件的数据。
这3个block 有大概是连续的,也有大概是分散的,以是会有磁盘碎片。
1.4.2、访问文件的简朴流程

https://img-blog.csdnimg.cn/direct/47a8e700722d44a7899d044f5cc195f3.png
1.5、Linux体系特点



[*]统统皆文件
[*]目次也是一种文件
1.6、检察文件名对应的inode 号码有两种方式



[*]ls -i  文件名
[*]stat  文件名
https://img-blog.csdnimg.cn/direct/31205070e5ae4b9e97d1dfc1106f989b.png
很显然stat看的更详细一些
https://img-blog.csdnimg.cn/direct/b14a92a0f7b049bfbdc9c6cadf24fdaf.png

1.7、linux体系文件三个主要的时间属性



[*]ctime(change time)
最后一次改变文件或目次 (属性)的时间


[*]atime(access time)
最后一次访问文件或目次的时间


[*]mtime(modify time)
最后一次修改文件或目次(内容)的时间


1.8、inode 占用

inode也会斲丧硬盘空间,以是格式化的时间,操作体系主动将硬盘分成两个地区。
一个是数据区,存放文件数据,
另一个是inode区,存放inode所包含的信息。
每个inode的巨细,一样平常是128字节或256字节。通常情况下不需要关注单个inode的巨细,而是需要重点关注inode总数。inode的总数在格式化时就给定了,实验"df   -i"命令即可检察每个硬盘分区对应的的inode总数和已经使用的inode数目。
https://img-blog.csdnimg.cn/direct/9e1924cc47e040f98343aa9f4679aef0.png
inode节点的总数,在格式化时就给定了,一样平常是每1KB或每2KB就设置一个inode。假定在一块1GB的硬盘中,每个inode节点巨细为128字节,每1KB就设置一个inode,那么inode table的巨细就会到达128MB,占整块硬盘12.8%。

由于inode号码与文件名分离,导致Linux体系具备以下几种特有的征象:
1.文件名包含特殊字符,大概无法正常删除。可直接删除inode,可以或许起到删除文件的作用;
2.移动文件或重定名文件,只是改变文件名,不影响inode 号码;
3.打开一个文件以后,体系就以inode 号码来辨认这个文件,不再思量文件名。
4.文件数据被修改保存后,会天生一个新的inode 号码。
https://img-blog.csdnimg.cn/direct/b7e90786863746ebb23605e258bcdf96.png


 1.8.1、实验1

先创建大量空文件
for ((i=1; i<=8680; i++)); do
    touch /test/file$i
done  或者
touch {1..8680}.txt 
https://img-blog.csdnimg.cn/direct/ba23371817524bb0b365c78643b60daf.png
i占用满
https://img-blog.csdnimg.cn/direct/2095920a38564830a4d0297deae826c8.png
 但是磁盘空间还有https://img-blog.csdnimg.cn/direct/18f816afcf8d4c3f86ea9a914fc97fa3.png
当再创建其他的的时间
https://img-blog.csdnimg.cn/direct/5771586969e74fe3a4d5454264d9410b.png
二、硬链接与软链接

为文件或目次建立链接文件
链接文件分类
硬链接
   ln  源文件目标位置
 软链接
   ln - s  源文件或目次   链接文件或目标位置
 详细内容看精讲第八段内容
云计算【第一阶段(12)】Linux常用命令精讲【二】_云计算怎么把目次改名-CSDN博客
三、恢复误删除的文件

3.1、恢复误删除的文件ext3

EXT范例文件恢复
extundelete 是逐一个开源的Linux 数据恢复工具,支持ext3、 ext4文件体系。 ( ext4只能在centos6版本恢复,但是现在企业用centos6版本少少,略过)
3.1.1、实验1

安装位置:切勿将extundelete安装到你误删的文件地点硬盘上,以避免数据被覆盖的风险
需要挂载一个ext3的盘
https://img-blog.csdnimg.cn/direct/76cd57994c534874b3735096f1b5acee.png
1.安装依靠包
yum -y install e2fsprogs-devel e2fsprogs-libs gcc gcc-c++ 
2.编译安装extundelete
cd /test
wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2
3.解压
tar jxvf extundelete-0.2.4.tar.bz2
4.切换目次
cd extundelete-0.2.4/
5.指定configure的配置路径 --prefix
./configure --prefix=/usr/local/extundelete && make && make install 或
./configure && make && make install
6.如果配置了指定的上面路径需要软链接
ln -s /usr/local/extundelete/bin/* /usr/bin/
模仿删除并实验恢复操作
cd /opt/yczj
切换到挂载点磁盘
https://img-blog.csdnimg.cn/direct/755c9f2b3f404bfbb87e5bc89b6aa8d6.png
添加数据
echo a>a
echo a>b
echo a>c
https://img-blog.csdnimg.cn/direct/9c0b3f17cd2143c6a64dcd9455ce6303.png
extundelete /dev/sdb2 --inode  2  #检察文件体系/dev/sdb2下存在哪些文件,i节点是从2开始的,2代表该文件体系最开始的目次。

rm -rf a b
extundelete /dev/sdb2  --inode 2
可以发现被删除了
https://img-blog.csdnimg.cn/direct/9eefc7c273b54ff6b6cdcb5e45d6815d.png
cd ~
umount /test
extundelete /dev/sdc1 --restore-all #恢复/dev/sdc1 文件体系下的所有内容
#在当前目次下会出现一个RECOVERED_FILES/目次,里面保存了已经恢复的文件
https://img-blog.csdnimg.cn/direct/dfb8dafd28494c4f93d536ab8bad7afa.png

ls RECOVERED FILES/
https://img-blog.csdnimg.cn/direct/c261e33dfba142108f68d8106c7a17fb.png
3.2、恢复误删除的文件XFS

xfsdump用于创建xfs文件体系的备份,而xfsrestore则用于将这些备份数据恢复到原始状态或指定位置,搭配使用。
xfsdump命令格式
   xfsdump    -f    备份存放位置           要备份的路径或装备文件
xfsdump备份级别 (默认为0)


[*]0:完全备份
[*]1-9:增量备份
xfsdump常用选项:-f,-L,-M,-s
-f: 指定备份文件目次
-L: 指定标签session label
-M: 指定装备标签media labe
-s:备份单个文件,-s后面不能直接跟路径

xfsrestore命令格式
   xfsrestore   恢复文件的位置      存放恢复后文件的位置
xfsdump使用限制


[*]只能备份已挂载的文件体系
[*]必须使用root的权限才能操作
[*]只能备份xfs文件体系
[*]备份后的数据只能让xfsrestore剖析
[*]不能备份两个具有雷同uuid的文件体系

实验
起首创建分区,格式化xfs,挂载
在挂载的地方创建一个文件
https://img-blog.csdnimg.cn/direct/c42faccc5da448d299c980bbbd24e404.png
先检察rpm -qa | grep xfsdump如果未安装yum install -y xfsdump
备份
xfsdump -f      /opt/dump_sdb    /dev/sdb1       
可以加   -L dump_sdb -M sdb1
https://img-blog.csdnimg.cn/direct/669610d6e25847a5a8cf48bd4ffeccb3.png
模仿删除,在挂载目次删除
https://img-blog.csdnimg.cn/direct/48e235f4ea674afeb3f38eed4392a285.png
恢复
xfsrestore  -f   /opt/dump_sdb1  /opt/ycnh
https://img-blog.csdnimg.cn/direct/69b1df68947548719ae0871b156fdc8c.png
https://img-blog.csdnimg.cn/direct/fef65d090bd242e3bfae2df876435a08.png
四、分析日记文件

4.1、日记的功能

用于记载体系,步伐运行中发生的各种事件
通过阅读日记,有助于诊断和解决体系故障
4.2、日记文件的分类



[*]内核及体系日记
由体系服务rsyslog统一进行管理,日记格式基本相似


[*]用户日记
记载体系用户登录及退出体系的相干信息


[*]步伐日记
由各种应用步伐独立管理的日记文件,记载格式不统一。

4.3、日记保存位置

默认位于: /var/log/目次下
主要日记文件先容


[*]内核及公共消息日记 /var/log/messages
[*]计划任务日记 /var/log/cron
[*]体系引导日记 /var/log/dmesg
[*]邮件体系日记 /var/log/maillog
[*] 用户登录日记 /var/log/lastlog  /var/log/secure  /var/log/wtmp  /var/run/btmp
4.3.1、常见的一些日记文件先容:

/var/log/messages: 记载Linux内核消息及各种应用步伐的公共日记信息,包括启动、IO错误、网络错误、步伐故障等。对于未使用独立日记文件的应用步伐或服务,一样平常都可以从该日记文件中获得相干的事件记载信息。
/var/log/cron: 记载crond计划任务产生的事件信息。
/var/log/dmesg: 记载Linux体系在引导过程中的各种事件信息。
/var/log/maillog: 记载进入或发出体系的电子邮件活动。
/var/log/secure: 记任命户认证相干的安全事件信息。
/var/log/lastlog: 记载每个用户最近的登录事件。二进制格式
/var/1og/wtmp: 记载每个用户登录、注销及体系启动和停机事件。二进制格式
/var/run/btmp: 记载失败的、错误的登录实验及验证事件。二进制格式

4.4、rsyslog

内核及体系日记由体系服务rsyslog 统一管理,主配置文件为/etc/rsyslog.conf
Linux操作体系自己和大部分服务器步伐的日记文件都默认放在目次/var/1og/下。
软件包:rsyslog-7.4.7-16.el7.x86_64
主要步伐:/sbin/rsyslogd
配置文件:/etc/rsyslog.conf

4.5、日记消息的级别

日记级别级号消息级别说明EMERG0紧急会导致主机体系不可用的情况ALERT1告诫必须马上采取步伐解决的问题CRIT2严重比较严重的情况ERR3错误运行出现错误WARNING4提醒大概会影响体系功能的事件NOTICE5留意不会影响体系但值得留意的信息INFO6信息一样平常信息,步伐或体系调试信息等DEBUG7调试详细的调试信息,用于开发或故障清除
4.6、日记记载的一样平常格式

https://img-blog.csdnimg.cn/direct/412bb0f2213148c884cbb25926156863.png

4.7、用户日记分析

保存了用户登录,退出体系等相干信息


[*]/var/log/lastlog: 最近的用户登录事件
[*]/var/log/wtmp: 用户登录,注销及体系开,关机事件
[*]/var/run/utmp: 当前登录的每个用户的详细信息
[*]/var/log/secure 与用户验证相干的安全性事件
分析工具
users,who,w, last, lastb

4.7.1、分析工具详细分析命令

users:命令只是简朴地输出当前登录的用户名称,每个表现的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将表现与其雷同的次数。

who:命令用于陈诉当前登录到体系中的每个用户的信息。使用该命令,体系管理员可以检察当前体系存在哪些不合法用户,从而对其进行审计和处理。who 的默认输出包括用户名、终端范例、登录日期及远程主机
w:命令用于表现当前体系中的每个用户及其所运行的历程信息,比 users、who 命令的输出内容要丰富一些
last:命令用于查询乐成登录到体系的用户记载,最近的登录情况将表现在最前面。通过last 命令可以及时把握 Linux 主机的登录情况,若发现未经授权的用户登录过,则表现当前主机大概已被入侵
lastb:命令用于查询登录失败的用户记载,如登录的用户名错误、密码不精确等情况都将记载在案。登录失败的情况属于安全事件,由于这表现大概有人在实验猜解你的密码。除了使用 lastb 命令检察以外,也可以直接从安整日记文件/var/log/secure 中获得相干信息



4.8、步伐日记分析

由相应的应用步伐独立进行管理
web服务:/var/log/httpd/
access_log,error_log
代理服务:/var/log/squid/
access.log,cache.log
FTP服务:/var/log/xferlog

分析工具
文本检察,grep过滤检索, webmin管理套件中检察
awk, sed等文本过滤,格式化编辑工具
webalizer  Awstats等专用日记分析工具

4.9、日记管理策略



[*]及时作好备份和归档
[*]延长日记保存期限
[*]控制日记访问权限
日记中大概会包含各类敏感信息,如账户,口令等


[*]会合管理日记
将服务器的日记文件发到统一的日记文件服务器,便于日记信息的统一收集, 整理和分析
杜绝日记信息的意外丢失, 恶意篡改或删除。

4.10、日记管理工具

4.10.1、Logrotate

(轮转,日记切割)       centos7  自带的一个
概念
Logrotate是一个在Linux体系中广泛使用的日记文件管理工具,主要用于日记文件的切割、压缩、删除和创建新日记文件等操作,以节省磁盘空间并方便日记管理
作用
1.如果没有日记轮转,日文件会越来越大
2.将扬弃体系中最旧的日记文件,以节省空间
3.logrotate自己不是体系守护历程,它是通过计划任务crond天天实验计划任务
Logrotate的常用参数



[*]-v, --verbose:表现详细的转储过程信息。
[*]-f, --force:欺压进行日记转储,忽略配置文件中设置的时间间隔或巨细限制。
[*]-d, --debug:测试配置文件是否有错误,但不实际实验转储操作。
[*]-m, --mail=command:压缩日记后,通过指定的命令发送日记到指定邮箱。
[*]-s, --state=statefile:使用指定的状态文件记载转储的日记信息。
Logrotate的定时实验



[*]Logrotate通常通过cron服务定时实验。在Linux体系中,/etc/cron.daily/logrotate 脚本负责天天实验一次Logrotate。
[*]用户也可以根据需要手动实验Logrotate,比方使用logrotate -vf /etc/logrotate.conf 命令欺压立即实验一次转储操作。
https://img-blog.csdnimg.cn/direct/42cd23140d484b4e8de8e3befda6ce67.png

配置
- 计划任务:/etc/cron.daily/logrotate
- 步伐文件:/usr/sbin/logrotate
- 配置文件: /etc/logrotate.conf
- 日记文件:/var/lib/logrotate/logrotate.status

https://img-blog.csdnimg.cn/direct/089302d07ba940b3b1dd793781d6bec2.png
https://img-blog.csdnimg.cn/direct/eb423bbc081c4fd288a80ee6230e1059.png
也可以在这里配置体系特定日记
以下是一个简朴的Logrotate配置示例,用于切割和压缩/var/log/myapp.log日记文件:
/var/log/myapp.log {
daily # 每天切割一次
rotate 7 # 保留7个备份
compress # 压缩备份文件
missingok # 如果日志文件丢失,不报错继续滚动下一个日志
notifempty # 如果日志文件为空,不进行轮转
create 640 myuser mygroup # 切割后创建新文件,并设置权限和所有者
}  更多独立配置文件详解
配置参数说明compress使用gzip压缩转储后的日记文件nocompress不对转储后的日记文件进行压缩copytruncate对于还在被打开中的日记文件,先备份当前日记并截断原文件nocopytruncate备份日记文件但不截断原文件create mode owner group使用指定的权限、所有者和所属组创建新的日记文件nocreate不创建新的日记文件(仅保留备份)delaycompress与compress一起使用时,耽误到下一次转储时才压缩当前转储的日记文件nodelaycompress覆盖delaycompress选项,转储时立即压缩日记文件errors address将转储时的错误信息发送到指定的Email地点ifempty即使是空文件也进行转储(默认活动)notifempty如果文件为空,则不进行转储mail address将转储的日记文件发送到指定的E-mail地点nomail转储时不发送日记文件到任何E-mail地点olddir directory将转储后的日记文件放入指定的目次(需与当前日记文件在同一文件体系)noolddir转储后的日记文件和当前日记文件放在同一个目次下prerotate/endscript在转储之前需要实验的命令(prerotate与endscript需单独成行)postrotate/endscript在转储之后需要实验的命令(postrotate与endscript需单独成行) daily指定转储周期为天天weekly指定转储周期为每周monthly指定转储周期为每月rotate count指定日记文件删除之前转储的次数,0指没有备份,5指保留5个备份tabooext [+] list让logrotate不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和~size size当日记文件到达指定的巨细时才转储(单位可以是bytes、KB或MB)sharedscripts对每个匹配的日记文件条目,prerotate和postrotate脚本只运行一次,无论匹配了多少个日记文件nosharedscripts对每个转储的日记文件,都实验一次prerotate和postrotate脚本(默认活动)missingok如果日记不存在,不提示错误,继承处理下一个日记文件nomissingok如果日记不存在,提示错误(默认活动)
4.10.2、webalizer日记分析工具

webalizer是一个高效的、免费的web服务器日记分析步伐。其分析效果以HTML文件格式保存,从而可以很方便的通过web服务器进行欣赏。Internet上的许多站点都使用webalizer进行web​​​​​​​服务器日记分析。
Webalizer是用C写的步伐,以是其具有很高的运行效率。在主频为200Mhz的机器上,webalizer每秒钟可以分析10000条记载,以是分析一个40M巨细的日记文件只需要15秒。
webalizer支持尺度的一样平常日记文件格式(Common Logfile Format);除此之外,也支持几种组合日记格式(Combined Logfile Format)的变种,从而可以统计客户情况以及客户操作体系范例。并且现在webalizer已经可以支持wu-ftpd xferlog日记格式以及squid日记文件格式了。webalizer支持命令行配置以及配置文件。可以支持多种语言,也可以自己进行本地化工作。webalizer支持多种平台,好比UNIX、linux、NT, OS/2 和 MacOS等。
软件:httpd 作为webalizer的页面服务器
 
4.10.3、journalctl命令

journalctl工具是CentOS-7才有的工具
Systemd 统一管理所有 Unit 的启动日记。带来的好处就是 ,可以只用journalctl一个命令,检察所有日记(内核日记和 应用日记)。日记的配置文件/etc/systemd/journald.conf 
https://img-blog.csdnimg.cn/direct/63b111f977c14b7fa48cf5b241341197.png
ps -ef | grep journald
https://img-blog.csdnimg.cn/direct/60a5eca1f5e942cd8bdf6d3e0d03d0d4.png
journalctl -b    //检察本次启动的日记
journalctl -k     //检察内核日记
journalctl -xe  经常用来检察最近报错的日记
-e:从结尾开始看
-x:提供问题相干的网址

其他
日记工具可研究:Webmin、 Webalizer、Awstats等专用日记分析工具

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 云计算【第一阶段(24)】Linux文件体系与日记分析