linux文件系统与日志分析

发布于:2024-06-03 ⋅ 阅读:(85) ⋅ 点赞:(0)

一、inode和block

1、创建文件

实际空间大小要占,第二个是元信息。元信息和实际数据都保存在硬盘上。

2、block

块。连续的八个扇区组成一个块,一个块的大小是4k,创建一个文件,最小也要占4k。操作系统读取硬盘,是一次性读取多个扇区,一个块一个块的读取。

3、inode

存储元信息(文件属性、权限、创建者、创建日期、时间戳等),大小128或者256字节,元信息发生变化,inode号也会发生变化

—时间戳

atime:只要读取文件就会更新时间

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

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

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

4、inode号的总数怎么定?

根据磁盘大小,磁盘越大inode号越多,越小inode号越少。

inode号和文件分离,二者只是映射关系

5、linux系统的特有现象

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

5.2 移动文件,重命名,inode号不变

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

5.4 元信息发生变化,inode号也会发生变化

ext4给5M、xfs给20M,模拟inode号耗尽,ext4和xfs会发生什么变化,二者有什么区别?

答:inode耗尽后,ext4不可以创建文件,xfs仍然可以创建文件,,可以对比一下刚挂载inode数量,和inode号耗尽创建数量,大概可以继续创建100个左右

xfs系统如何实现备份和恢复?

(xfsdump 备份软件 xfsstore 恢复软件)

1、xfsdump:备份命令

-f 指定需要的硬盘分区 硬件设备挂载点

-L 指定标签

-M 指定设备标签

-s 备份

2、xfsdump使用限制

2.1 只能备份xfs文件系统

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

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

2.4 备份数据恢复,只能使用xfsstore

2.5 不同设备的uuid相同,不能备份(这个情况几乎没有)

备份命令:xfsdump -f /opt/backup /dev/sdb2 [-L backup -M sdb2]
命令解释:把/dev/sdb2的内容备份到/opt/backup目录下,[-L backup 指文件标签 -M sdb2 指设备标签]
!!!注意:/opt/backup 必须是个文件,必须是个不存在的文件。不能是目录,如果已经存在,必须是个空文件

3、备份级别

全量备份和增量备份

0 全量备份,默认

1~9 增量备份,一般不用

恢复命令:xfsrestore -f /opt/backup /data1/
命令解释:把/opt/backup下删除的内容,恢复到/data1/目录下

问:备份完恢复文件,inode号是否会变?

一般会变,删除文件后,inode被释放,恢复文件,会分配新的inode号,不排除分配该文件原有inode号,但概率很小。

4、EXT类型备份和恢复

ext4在centos6下使用,恢复成功概率低。

二、日志分析

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

1、主要日志文件介绍

1.1 /var/log/messages/ 记录了linux的内核消息,各种应用程序的公共日志消息。应用程序的公共日志:开、关、重启、网络错误、程序故障等,访问日志和一些自由业务日志不包含其中

1.2 /var/log/cron/ 记录定时任务日志

1.3 /var/log/dmesg/ 记录系统引导日志

1.4 /var/log/maillog/ 记录或者发出的系统电子文件

1.5 /var/log/secure/ 用户认证的相关信息

2、linux的日志级别

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

级号 信息 级别 说明
0 EMERG 紧急 会导致主机系统不可用情况,系统崩溃。例如:磁盘满了(emerg)
1 ALERT 警告 必须马上采取措施解决的问题。例如:密码到期、数据库崩溃
2 CRIT 严重 比较严重的情况。例如:磁盘读写出了故障
3 ERR 错误 运行出现错误
4 WARNING 提醒 可能会影响系统功能的事件
5 NOTICE 注意 不会影响系统但值得注意
6 INFO 信息 一般信息
7 DEBUG 调试 程序或系统调试信息等

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

3、重要日志定义

日志信息 说明
*.info * 表示所有,表示系统当中的设备,或者程序。info,包含info已经info级别以上的日志
auth 用户认证产生的日志
daemon 守护后台进程日志
authpriv SSh、FTP登录验证信息
news 网络传输产生的消息
syslog 系统相关日志
kern 系统的内核日志
user 用户进程日志
local0-local7 自定义程序日志
uucp unix-to-unix copy 两个系统之间的通信

4、日志级别如何看

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:记录邮件和网络传输消息info和info以上的(也可以写成 mail,news.info)

5、日志信息格式及含义

May 31 13:46:02 test1 systemd: Starting The Apache HTTP Server

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

test1 表示发生的主机名

systemd: 什么系统产生了这个日志

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

三、实验

实验1

要求:ssh的日志单独列出来,作为一个独立的日志文件

1、打开两台虚拟机test1和test2,关闭防火墙和防御机制。

2、修改系统日志配置,增加新ssh日志存储路径 vim /etc/rsyslog.conf

3、重启系统日志服务 systemctl restart rsyslog.service

4、修改sshd配置 vim /etc/ssh/sshd_config

5、重启sshd服务 systemctl restart sshd

6、到/var/log/目录下查看,出现ssh.log,即为修改配置成功

7、动态查看日志

在test1上 tail - f /var/log/shh.log

在test2上远程访问test1 ssh root@192.168.100.11

test1上会出现来找test2的ip地址

访问 tail -f /var/log/secure/

只记录会话,简单信息,详细信息记录在ssh里面

实验2

要求:配置日志服务器来进行日志收集

test1,192.168.100.11作为日志收集服务器

test2,192.168.100.12产生日志发到test1,自己不再收集

1、打开两台虚拟机test1和test2,关闭防火墙和防御机制。

2、修改系统日志配置,增加新ssh日志存储路径 vim /etc/rsyslog.conf

4、重启日志 systemctl restart rsyslog.service

5、查看tcp端口 netstat -antp | grep 514

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

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

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

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

6、vim /etc/log/messages

7、重启日志 systemctl restart rsyslog.service

8、此时在打开一个test2,tail -f /etc/log/messages,发现日志信息会在test1上的/var/log/messages接收


网站公告

今日签到

点亮在社区的每一天
去签到