• 文件系统和日志分析


    深入理解linux文件系统与日志分析

    文件系统

    在这里插入图片描述

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

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

    block:块,连续的八个扇区组成一个块,一个块的大小是4kb,创建一个文件,最小要占4kb,这是文件的最小存储单位

    操作系统读取硬盘(机械),是一次性读取多个扇区,一个块一个块的读取数据

    创建文件:第一个是实际空间大小,第二个是元信息.元信息(128字节或者256字节)和实际数据都保存在硬盘上.

    一个文件必须占用一个inode(只要创建文件必须有一个inode号),至少占用一个block(空文件,也要占一个块)

    在这里插入图片描述

    时间戳:

    ​ atime 访问,只要读取文件就会更新这个时间

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

    ​ ctime 修改文件的权限也会更新这个时间

    在这里插入图片描述

    inode号:linux都是识别文件的inode号

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

    ​ 元信息发生改变时,inode号也会跟着改变

    在这里插入图片描述

    文件存储

    在这里插入图片描述

    在这里插入图片描述

    ​ inode是根据磁盘大小来定的,磁盘越大,inode号越多,磁盘越小inode号越少

    总结:

    ​ inode号和文件名分离,二者只是映射关系,linux呈现以下几个现象

    ​ 1.如果文件名包含特殊字符,rm可能无法正常删除,只能通过inode号删除

    ​ 2.如果移动文件,重命名文件,对inode号无影响

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

    ​ 4.元信息发生变化,inode也会发生变化

    如果inode号满了,ext4文件系统和xfs文件系统之间有什么区别

    ​ ext4 满了无法再新建文件

    ​ xfs 还有缓冲的余地

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

    ​ xfsdump软件 备份

    ​ 使用限制:

    ​ 只能备份xfs的文件系统

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

    ​ 只有root权限才能进行备份

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

    ​ 如果两个设备的uuid相同,不能备份(这种情况几乎不会有)(blkid)

    ​ mount /dev/sdh1 /data1 对追加上的磁盘sdh1进行挂载,挂载到data1目录下

    ​ xfsdump -f /opt/backup /dev/sdh1 [-L backup -M sdh1]

    ​ -f 执行文件

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

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

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

    ​ /dev/sdb2 设备

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

    ​ 0 默认

    ​ 1

    ​ xfsdump -f 指定需要备份的硬盘分区(硬件设备的挂载点)

    ​ -L 指定标签

    ​ -M 指定设备标签

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

    ​ 具体实现:

    备份后又恢复的文件,inode号是否会发生变化

    ​ xfsrestore软件 恢复

    ​ xfsrestore -f /opt/backup /data1/

    ext4只能在centos6

    ext3格式

    ​ extundelete

    日志分析

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

    ​ linux系统本身和日志和发部分服务器程序的日志都在/var/log目录下

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

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

    ​ 访问日志和一些自由业务不包含在其中,有自己的目录

    ​ cron:定时任务日志

    ​ dmesg:开机过程中的日志

    ​ mailog:记录进入或者发出的系统的电子邮件

    ​ secure:用户认证的相关信息

    ​ rsyslog

    ​ linux日志级别:

    数字越小,优先级越大,消息就越重要

    在这里插入图片描述

    0 EMEGR 紧急 会导致主机系统不可用的情况,会导致系统崩溃,比如说磁盘要满了,就会提示EMERG

    1 ALERT 警告 必须马上要采取措施解决的问题.比如说密码到期,数据库崩溃

    2 CRT 严重 比较严重的情况.比如说磁盘读写出了故障,有些程序的功能无法启动

    3 ERR 错误 运行出现错误.比如说程序启动失败,端口被占用等等,见的最多的情况,出现了也是要尽快解决的.*

    4 WARNING 提醒 可能会影响功能,需要提醒用户的重要事件,但是不是报错,不过如果磁盘使用率到了85%还是需要处理下的*

    5 NOTICE 注意 也是需要用户注意的,这个notice的信息无需处理*

    6 info 信息 系统或者应用在程序在工作中产生的正常消息*

    7 debug 调试 程序在开发阶段,调试程序时的信息

    8 none 没有优先级 不记录任何日志消息

    ​ 日志级别怎么定义:

    ​ vim /etc/rsyslog.conf

    在这里插入图片描述

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

    ​ auth 用户认证产生的日志

    ​ daemon 守护后台进程的进城

    ​ authpriv ssh,ftp登录验证的信息

    ​ news 网络传输产生的消息

    ​ syslog 系统的相关日志

    ​ kern 系统的内核日志

    ​ user 用户进程日志

    ​ local0-local7 自定义程序的日志

    ​ 举例

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

    ​ mail.=info /var/log/mail.log 只记录日志级别是info的

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

    ​ mail.info:news.info

    ​ mail,news.info

    ​ 表示当前日志发生的事件

    test1 表示发生的主机名

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

    Starting The Apache HTTP Server…:日志的具体内容

    第一个实验 ssh的日志单独列出来,作为一个独立的日志文件

    ​ 关闭两个shell连接的防火墙

    ​ systemctl stop firewalld 关闭防火墙

    ​ setenforce 关闭安全机制

    ​ 第一步第一个连接内:

    ​ vim /etc/rsyslog.conf 修改定义日志记录的配置文件

    ​ : set number

    ​ local6.* /var/log/ssh.log 将local6等级的记录存放到var下的log下的ssh.log文件中

    ​ wq

    ​ vim /etc/ssh/sshd_config 修改ssh配置文件

    ​ : set number

    ​ 32gg #

    ​ SyslogFacility LOCAL6

    ​ wq

    ​ systemctl restart rsyslog.service 重启日志服务

    ​ systemctl restart sshd 重启sshd服务

    ​ cd /var/log

    ​ tail -f /var/log/ssh.log

    ​ 第二步第二个连接内:

    ​ ssh root@192.168.118.51

    第二个实验:

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

    test1 192.168.118.52 日志收集服务器

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

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

    ​ @表示使用UDP协议进行传输

    ​ 端口状态

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

    ​ ESTABLISHED 表示端口之间已经建立连接而且在传输数据

    192.168.118.53

    ​ vim /etc/rsyslog.conf

    19行 $ModLoad imtcp 解掉注释

    20行 $InputTCPServerRun 514 解掉注释

    ​ #*.info;mail.none;authpriv.none;cron.none /var/log/messages

    55行 *.info;mail.none;authpriv.none;cron.none @@192.168.118.53

    ​ wq!

    ​ systemctl restart rsyslog.service

    ​ netstat -antp|grep 514

    总结

    ​ 文件系统:对文的操作,用户是针对文件名,系统针对的inode号,系统是inode来进行识别,inode号又叫元信息,权限,大小,时间戳

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

    ​ 创建文件:既要保存元信息,又要保存实际数据

    ​ 备份和恢复:XFS ext3

    ​ 日志:

    ​ error

    *.info;mail.none;authpriv.none;cron.none @@192.168.118.53

    ​ wq!

    ​ systemctl restart rsyslog.service

    ​ netstat -antp|grep 514

    总结

    ​ 文件系统:对文的操作,用户是针对文件名,系统针对的inode号,系统是inode来进行识别,inode号又叫元信息,权限,大小,时间戳

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

    ​ 创建文件:既要保存元信息,又要保存实际数据

    ​ 备份和恢复:XFS ext3

    ​ 日志:

    ​ error

    ​ info

  • 相关阅读:
    模型选择、过拟合与欠拟合(多层感知机)
    Soot(一):Soot的三种使用方式:命令行、idea、eclipse
    深度学习进阶篇-预训练模型[4]:RoBERTa、SpanBERT、KBERT、ALBERT、ELECTRA算法原理模型结构应用场景区别等详解
    Redis学习3——列表数据类型的操作
    windows线程同步与互斥
    NodeMCU ESP8266 读取按键外部输入信号详解(图文并茂)
    巧用大数据分析工具,让本地数据输入速度提升2倍的方法
    java计算机毕业设计-旅游产品销售管理-演示录像2020源码+数据库+系统+lw文档+mybatis+运行部署
    为什么说Java程序员都要学习JVM?阿里架构师分享JVM学习教程
    算法笔记(三)基础提升
  • 原文地址:https://blog.csdn.net/qq_59169480/article/details/139410657