个人技术分享

深入理解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