linux 文件系统与日志分析

如何查看indoe号

ls  -i

df  -i

stat /文件名

有三个时间

atime 最后一次查看文件

mtime 最近更改文件内容

ctime 最近更改文件元信息的时间如更改权限等

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

2.八个连续的扇区组成一个块  一个块是4k(8*512=4096字节) 读取硬盘时是一块一读

3.文件数据包包括诗句数据和元信息,元信息类似文件属性包含创建者、创建日期、文件大小、文件权限等信息。  存储文件元信息的区域就叫做inode表,一个文件必须占用一个inode,并且至少占用一个block。

4.inode不包含文件名。文件名是存放在目录文件夹当中的。Linux 系统中一切皆文件,因此目录也是一种文件。

5.inode号   同一文件系统中唯一   用于区分不同的文件  

系统会先根据文件名去查找它对应的inode号码:通过inode号码,获取inode信息;根据inode信息,看该用户是否具有访问这个文件的权限;如果有,就指向相对应的数据block,并读取数据。

元数据包含mode  权限  owner info:所有者  size:大小   timestamps:三个时间戳等信息

指针指向实际数据  直接指针默认为12个

直接指针直接指向实际数据的地址

最大文件为4*12=48k

由于文件过大,直接指针无法满足超过48k的文件所以直接出现了间接指针,间接指针指向的不是实际数据而是指针  指针书为4k/4字节每个指针4字节

目录

目录是特殊的问价,目录文件内保存了此目录中文件的列表和inode number之间的对应关系。

linux通过文件夹中的文件名和inode的对应表去找inode号  inode号直接指向对应的实际数据

一个目录文件的内容就是一个该目录下所有文件目录项的列表。

1.用户访问文件时 先去查找 自己 文件夹中的目录项 , 2文件名和inode之间对应的关系, 3通过 inode号利用指针 去指向 实际数据

cp 和 inode

cp命令

分配一个空闲的inode号。在inode表中生成一个新的inode条目

在目录中创建一个目录项,将名称与inode编号关联

拷贝数据生成新的文件

rm 命令

硬链接数递减,从而释放的inode号可以被重用

把数据块放在空闲列表中

删除目录项

数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖

mv和inode

  • 如果mv命令的目标和源在同一设备,

    不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动!

    删除旧的目录对应关系新建目录对应关系

 删除文件空间不释放

可能是因为文件正在被占用  通过echo " " > /boot/bigfile  发送空白来刷新文件

1.1 硬链接与软连接

ln [-s] 源文件或目录… 链接文件或目标位置          创建软连接

ln                                                                                  硬链接

对比项硬连接软连接
本质本质是同一个文件本质不是同一个文件
inode相同不同
连接数创建新的硬链接,链接数会增加,删除硬链接,链接数减少删除新建不会改变
文件夹不支持支持
删除源文件只是链接数减一,但链接文件的访问不受影响无法访问连接文件
文件类型和源文件相同链接文件,和源文件无关
文件大小和源文件相同源文件的路径的长度

日志

内核及系统日志由系统服务rsyslog 统一管理 ,根据其主配置文件/etc/rsyslog.conf

Linux 操作系统本身和大部分服务器程序的日志文件都默认放在目录/var/log/下

常见日志文件位置

日志文件位置日志文件说明

/var/log/messages

内核和公共日志

核心系统日志文件,他包含了系统启动该是的引导信息,运行时的状态。网络等各类报错信息,用户间切换以及安装软件等
/var/log/cron 计划任务日志记录与系统定时任务相关的曰志
/var/log/dmesg 系统引导日志记录开机时自检信息。可使用demesg直接查看内核自检信息
/var/log/maillog 邮件日志记录邮件信息的体制
用户日志
/var/log/lastlog记录系统中所有用户最后一次的登录时间的曰志。不能用vim查看,要是哟lastlog
/var/log/secure记录验证和授权方面的倍息,只要涉及账户和密码的程序都会记录
/var/log/wtmp永久记录所有用户的登陆、注销信息,同时记录系统的启动、重启、关机事件。
/var/tun/ulmp记录当前已经登录的用户的信息。 只记录当前登录用户的信息

日志文件的格式:

时间发生的时间  主机名     服务器或程序名     时间的具体信息即发生了什么

 内核和公共日志

vim /etc/rsyslog.conf                 系统默认日志设置

0 EMERG(紧急):会导致主机系统不可用的情况。

1 ALERT(警告):必须马上采取措施解决的问题。

2 CRIT(严重):比较严重的情况。

3 ERR(错误):运行出现错误。

4 WARNING(提醒):可能影响系统功能,需要提醒用户的重要事件。

5 NOTICE(注意):不会影响正常功能,但是需要注意的事件。

6 INFO(信息):一般信息。

7 DEBUG(调试):程序或系统调试信息等

 内核和公共消息日志存储位置

内核及大多数系统消息被记录到公共日志文件/var/log/messages 中,而其他一些程序或有独立的日志文件

以公共日志/var/log/messages 文件的记录格式为例,其中每一行表示一条日志消息,每

一条消息均包括以下四个字段。

  • 时间标签:消息发出的日期和时间。

  • 主机名:生成消息的计算机的名称。

  • 子系统名称:发出消息的应用程序的名称。

  • 消息:消息的具体内容。

用户日志 

在 wtmp、btmp、

lastlog 等日志文件中,保存了系统用户登录、退出等相关的事件消息。

这些文件无法直接用文本工具查看。需要使用 who、w、users、last 和 lastb 等用户查询命令来获取日志信息。

users  用法单一只是简单的输出用户名  

 who

可查看当前系统中每个用户的信息,

用途:管理员用户使用此命令可以此为依据对用户进行判断

 w

比上述输出更详细的用户信息,包括其所运行的进程

查询用户登录的历史记录

last

查看你成功登录到系统的用户的记录

 可根据其数据用以判断账户安全性。

lastb

lastb 命令用于查询登录失败的用户记录,

如登录的用户名错误、密码不正确等情况都 将记录在案。

 用以判断账户安全性

系统日志介绍

sysklogd 系统日志服务

system application 记录应用日志

klogd: linux kernel 记录内核日志

格式

日期时间 主机 进程[pid]: 事件内容

rsyslog

rsyslog 特性

多线程

UDP, TCP, SSL, TLS, RELP

MySQL, PGSQL, Oracle实现日志存储

强大的过滤器,可实现过滤记录日志信息中任意部分

自定义输出格式 可以日志

适用于企业级

服务器:提供服务的机器

客户端:需要访问服务的

ELK

由Elasticsearch, Logstash, Kibana三个软件组成

Elasticsearch,用以处理大规模的体制数据,如:Nginx、Tomcat、系统日志等

Logstash对日志进行收集、分析,过滤,并将其存储供以后使用

Kibana 可以提供的日志分析友好的 Web 界面

rsyslog 管理

facility:设施,从功能或程序上对日志进行归类

Priority 优先级别,从低到高排序

debug, info, notice, warn(warning), err(error), crit(critical), alert, emerg(panic)

参看帮助: man 3 syslog,man logger

实际操作,将ssh服务的日志单独设置

安装rsyslog    搭建日志服务器

1.两天设别都安装rsyslog 程序

2.与服务器设备中解除注释相关配置

 于客户端 上进行相关配置

 配置日志存储位置

 重启rsyslog服务并    查看双方设备514端口是否开启

 监听服务端         并      于客户端向日志文件中写入

 

 

 

 完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值