当前位置: 首页 > news >正文

23、linux系统文件和日志分析

linux文件系统与日志分析

文件时存储在硬盘上的,硬盘上的最小存储单位是扇区,每个扇区大大小是512字节。

inode:元信息(文件的属性 权限,创建者,创建日期等)

block:块,连续的八个扇区组成一个块,一个块的大小是4k,创建一个文件,最小也要占4k。

块是文件存储的最小存储单位。

在这里插入图片描述

操作系统读取硬盘,是一次性读取多个扇区一个一个块读取数据。

创建文件:实际空间大小的要占,第二个就是元信息。元信息和实际数据都保存在硬盘上。

元信息,inode 128字节或者256字节。

在这里插入图片描述

一个文件必须占用一个inode号(只要创建文件必须有一个inode号)

至少占用一个block(空文件,也要占一个块)

时间戳:

atime:访问,读取文件就会更新这个时间。

mtime:修改文件数据,更改文件的属性,都会更新这个时间。

ctime:修改文件权限也会更新这个时间。
在这里插入图片描述
inode号:linux系统都是识别文件的inode号

在这里插入图片描述

修改文件内容,硬盘中的位置发生变化,inode号也会发生变化。vim

[root@localhost opt]# ls -i
33624704 123                33965422 nginx-1.22.0
33624702 john-1.8.0.tar.gz  33618581 nginx-1.22.0.tar.gz
33624944 login.sh
[root@localhost opt]# vim 123
[root@localhost opt]# ls -i
33624708 123                33965422 nginx-1.22.0
33624702 john-1.8.0.tar.gz  33618581 nginx-1.22.0.tar.gz
33624944 login.sh

元信息发送了变化,inode也会发送变化

在这里插入图片描述

inode号的总数?df -i

磁盘大小。磁盘越大,inode越多,越小,inode越小。

inode号和文件名分离,二者只是映射关系,linux系统的特有现象:

1、文件名包含特殊字符,rm可能无法正常删除,可以直接删除inode号。

2、移动文件,重命名,inode是不变的。

3、一旦对文件操作,后续所有的认证和识别都是通过inode来的,不再考虑文件名。

4、元信息发送变化,inode也会发生变化。

xfs文件系统,如何能够实现备份和恢复?(必会)

centos7默认使用文件系统就是xfs

xfsfump备份

xfsrestore恢复

xfsdump命令选项:

-f 指定需要备份的文件目录(设备挂载点)/指定备份硬盘分区

-L 指定标签

-M 指定设备标签

-s 备份单个文件,-s 后面不能之间根路径。

xfsdump使用限制:

1、只能备份xfs的文件系统

2、只能备份以及挂载的文件系统

3、只有root权限才能进行操作

4、备份之后的数据要恢复,只能使用xfsrestore解析恢复。

5、如果两个设备的uuid相同,不能备份。

备份完之后,恢复文件,inode号是否会发送变化

1、建立sdb1物理卷,已经创建文件系统及挂载点sdb1,进入挂载目录/data1,写入需要备份的文件,写入后进行备份
xfsdump -f(指定需要备份的文件目录(设备挂载点)/指定备份硬盘分区) /opt/backup /dev/sdb1 [-L backup -M sdb1]
2、进入/data1,删除需要备份文件
[root@localhost data1]# ls
123
[root@localhost data1]# rm -rf *
3、备份恢复
[root@localhost data1]# xfsrestore -f /opt/backup /data1/
[root@localhost data1]# ls
123

/opt/backup 必须是个文件,必须是个不存在的文件,不能是目录,如果已存在,必须是个空文件。

/dev/sdb2 设备

[-L 文件标签(备份文件的标签) ]

[-M 设备标签(要备份的硬盘分区)]

备份级别:全量备份和增量备份

0也是备份 也就是全量备份

1-9是增量备份,一般不用。

xfsrestore -f /opt/backup /data1/

前一个是备份的文件

后一个是恢复到指定的目录

EXT类型备份和恢复:

ext4只能在centos6

ext3格式

extundelet

日志分析:

系统的日志类型以及日志如何分析

linux系统本身的日志和大部分的服务器程序的日志都在/var/log/

/var/log/messages 记录了linux的内核消息,各种应用程序的公共的日志消息。

应用程序公共日志:开 关 重启 网络错误 程序故障这些都属于公共日志

访问日志和一些自由业务日志不包含在其中。

cron:记录的是定时任务的日志

dmesg:引导过程的日志信息

maillog:记录进入或者发出的系统电子邮件信息

secure:用户认证的相关信息

在这里插入图片描述

rsyslog

在这里插入图片描述

linux的日志消息级别

在这里插入图片描述

linux的日志级别:数字越小,优先级越高,消息越重要

级号消息级别说明
0EMERG紧急会导致主机系统不可用的情况,系统崩溃。磁盘要满了(EMERG)
1ALERT警告必须要采取措施解决的问题。密码到期,数据库奔溃。
2CRIT严重比较严重的情况,磁盘读写出了故障,有些程序的功能无法启动。
3ERR错误运行出现错误,程序启动失败,端口被占用等等,间的最多的情况,出现最多的,出现了也是要尽快解决的
4WARNING提醒可能会影响功能,需要提醒用户的重要时间,但不是报错。磁盘利用率到了85%
5NOTICE注意也是需要用户注意的,无需处理
6INFO信息一般信息,系统或者应用程序在工作中产生的正常消息
7DEBUG调试程序在开发阶段,调试程序时的信息
none没有优先级不记录任何日志消息

*.info 表示所有,表示系统中的设备,或者程序。info:包含info以及info级别以上的日志。

auth 用户认证产生的日志

daemon 守护后台进程的进程

authpriv:SSh,FTP登录验证的信息

news:网络传输产生的信息

syslog:系统的相关日志

kern:系统的内核日志

user:用户进程日志

local-local7:自定义程序

uucp:unix-to-unix copy两个linux之间的通信

mail.info /var/log/mail.log:记录邮件的信息,包含info及info以上的,记录到/var/log/mail.log

mail.=info /ar/log/mail.l0g 只记录日志级别是info的

mail.!info /var/log/mail.10g 除了info的不记录,其他的都记

mail.info;news.info=mail,news.info

日志信息翻译

May 31 13:46:02 test1 systemd: starting The Apache HTTP server…

May 31 13:46:02 表示当前日志发生的时间

test1表示发生的主机名

systemd:哪个系统产生了这个日志

starting The Apache HTTP server…日志的具体内容

第一个实验:ssh的日志单独列出来

1、test1、test2关防火墙、安全机制

[root@test1 opt]# systemctl stop firewalld    ##关闭防火墙
[root@test1 opt]# setenforce 0                ##关闭安全机制[root@test2 ~]# systemctl stop firewalld
[root@test2 ~]# setenforce 0

2、打开系统日志,单独列出ssh日志

[root@test1 opt]# vim /etc/rsyslog.conf
local7.*                                                /var/log/boot.log
到74行,local6.*                                                /var/log/ssh.log

3、把默认ssh日志存储位置注释

[root@test1 opt]# vim /etc/ssh/sshd_config 
32gg行 32 #SyslogFacility AUTHPRIV   进行注释##
33行写入 33 SyslogFacility LOCAL6     更改日志位置

4、服务刷新

[root@test1 opt]# systemctl restart rsyslog.service[root@test1 opt]# systemctl restart sshd[root@test1 opt]# cd /var/log/
[root@test1 log]# lsanaconda            maillog            spooler-20240519
audit               maillog-20240519   spooler-20240531
boot.log            maillog-20240531   ssh.log

5、查找 ssh.log日志

[root@test1 log]# tail -f ssh.log[root@test2 ~]# ssh root@192.168.168.10Are you sure you want to continue connecting (yes/no)? yesroot@192.168.168.10's password: 123May 31 23:20:12 test1 sshd[48095]: Accepted password for root from 192.168.168.20 port 44206 ssh2

第二个实验:

配置日志服务器,来进行日志收集

test1 192.168168.10 日志收集服务器

test2 192.168.168.20上产生的的日志,都会发到10上,20自己不再记录日志

1、test2进入系统日志配置文件,之前一定关闭防火墙和安全机制

[root@test2 ~]# vim /etc/rsyslog.conf#*.info;mail.none;authpriv.none;cron.none                /var/log/messages   #注释这一行*.info;mail.none;authpriv.none;cron.none                @@192.168.168.10 ##日志存储改到192.168.168.10$ModLoad imudp                                                   ##@@是tcp传输端口打开
$UDPServerRun 514

2、文件配置完成,刷新。

[root@test2 ~]# systemctl restart rsyslog.service 

3、test1日志配置,打开tcp端口514传输

[root@test1 ~]# vim /etc/rsyslog.conf*.info;mail.none;authpriv.none;cron.none                /var/log/messages        ##不用改Provides TCP syslog reception$ModLoad imtcp                                                                ##关闭注释,打开端口
$InputTCPServerRun 514                                                 ##关闭注释,打开端口[root@test1 ~]# systemctl restart rsyslog.service
[root@test1 ~]# systemctl stop firewalld
[root@test1 ~]# setenforce 0
[root@test1 ~]# tail -f /var/log/messages

4、到test2,输入[root@test2 ~]# logger “this is xy102”

5、test1,出现日志Jun 1 12:42:46 test2 root: this is xy102

6、test2,不会出现日志。

@@表示使用tcp协议进行数据传输

@表示使用udp协议进行数据传输

LISTEN:监听,端口是否开启。端口是否正常传输数据

eatablished:表示端口之间以及建立连接而且正在传输数据。

文件系统:对文件的操作,用户时针对文件名,系统针对的inode好哦,系统都是inode来进行识别。

inode号保存的是元信息,大小,时间戳。

block块 文件的最小存储单位,连续的8个扇区,4k。

创建文件:保存云信息,保存实际数据。

备份个恢复:XFS ext3

*问题:**xfs模拟耗尽inode,能不能写入,若能写入,写入多少。如果inode号满了,ext4和xfs之间有什么区别?***

1、增加硬盘、物理卷分区,创建文件系统,挂载。
在这里插入图片描述

2、查看inode号

在这里插入图片描述

3、创建10237个文件
在这里插入图片描述

4、继续新建到10300个

在这里插入图片描述

5、继续新建到10400个

在这里插入图片描述

总结:1、ext4创建inode号,inode满了以后,不能继续创建inode号。

2、xfs创建文件,消耗inode号,inode号满了以后,可以继续创建inode号,df -i显示可用inode号个数10237,最终消耗10365个inode号。

g-OPyXW2tN-1717227770016)]

2、查看inode号

[外链图片转存中…(img-EPsaF42u-1717227770016)]

3、创建10237个文件

[外链图片转存中…(img-DtMaf1D1-1717227770016)]

4、继续新建到10300个

[外链图片转存中…(img-sSvDPy9Q-1717227770016)]

5、继续新建到10400个

[外链图片转存中…(img-k0TkGW5f-1717227770016)]

总结:1、ext4创建inode号,inode满了以后,不能继续创建inode号。

2、xfs创建文件,消耗inode号,inode号满了以后,可以继续创建inode号,df -i显示可用inode号个数10237,最终消耗10365个inode号。

http://www.lryc.cn/news/361024.html

相关文章:

  • 安装VS2017后,离线安装Debugging Tools for Windows(QT5.9.2使用MSVC2017 64bit编译器)
  • 路由策略实验2
  • Linux网络-守护进程版字典翻译服务器
  • Python 推导式详解:高效简洁的数据处理技巧
  • 车联网安全入门——ICSim模拟器使用
  • leetcode - 20.有效的括号(LinkedHashMap)
  • 多维数组的动态内存分配(malloc和new)
  • 71、评测OrangePi AIpro开发板和USB CAMERAOAK视频解码+推理+编码+推流测试
  • 为什么需要开局调用函数?
  • QT-demo:0轴分布图表
  • git远程仓库限额的解决方法——大文件瘦身
  • 碰撞检测技术在AI中的重要作用
  • UE5 Cesium2 最新使用地理配准子关卡构造全球场景
  • 【Java数据结构】详解LinkedList与链表(二)
  • 【精读文献】J. Environ. Manage.|青藏高原生态恢复项目下植被覆盖动态及其对生态系统服务的约束效应
  • QT之常用控件
  • 【嵌入式硬件】DRV8874电机驱动
  • 考研数学:有些无穷小不能用等价无穷小的公式?
  • 谷歌浏览器的平替,内置开挂神器,我已爱不释手!
  • UMLChina为什么叒要翻译《分析模式》?
  • npm install 安装很慢如何解决?
  • 哈夫曼树的构造,哈夫曼树的存在意义--求哈夫曼编码
  • 一个全面了解Xilinx FPGA IP核的窗口:《Xilinx系列FPGA芯片IP核详解》(可下载)
  • virtualbox识别windows上usb设备
  • LabVIEW步进电机的串口控制方法与实现
  • 云计算-高级云资源配置(Advanced Cloud Provisioning)
  • Nginx企业级负载均衡:技术详解系列(17)—— 长连接优化策略与下载服务器高效搭建
  • LabVIEW如何确保步进电机的长期稳定运行
  • vue2 bug 小白求助!!!(未解决,大概是浏览器缓存的问题或者是路由的问题)
  • 上海云管平台怎么样?客服电话多少?