Linux文件系统和日志分析

1、inode

每个文件的属性信息,比如:文件的大小,时间,类型,权限等,称为文件的元数据(meta data 元信息 )

元数据是存放在inode(index node)表中。inode 表中有很多条记录组成,第一条记录对应的存放了一个文件的元数据信息。

ls -i  [文件名]   或   stat  [文件名]
查看文件详细信息

 

最近访问atime最后一次查看文件
最近更改mtime最近更改文件内容的时间
最近改动ctime最近更改文件元信息的时间

每一个inode表记录对应的保存了以下信息:

  • inode number 节点号

  • 文件类型

  • 权限

  • UID

  • GID

  • 链接数(指向这个文件名路径名称个数)

  • 该文件的大小和不同的时间戳

  • 指向磁盘上文件的数据块指针

  • 有关文件的其他数据

1.1、文件

文件是存储在硬盘上的,硬盘的最小存储单位叫做“扇区”(sector),每个扇区存储512字节。连续八个扇区为一块(block)。操作系统读取时,是一块一块读的,也就是一次读4k

一个文件必须占用一个inode,并且至少占用一个block ,inode不包含文件名。文件名是存放在目录文件夹当中的。Linux 系统中一切皆文件,因此目录也是一种文件。每个inode都有一个号码,操作系统用inode号码来识别不同的文件。Linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称,文件名和inode号码是一一对应关系,每个inode号码对应一个或多个文件名

在同一设备中inode号不能相同,不同设备inode号可以相同

物理分区inode号范围是固定的,当inode号分配完了即使硬盘还有空间也无法继续创建文件

lvm分区无限inode

1.2、目录

目录是个特殊文件,目录文件的内容保存了此目录中文件的列表及inode number对应关系

文件引用一个是 inode号

是通过文件名来引用一个文件

一个目录是目录下的文件名和文件inode号之间的映射

1.3、系统是怎么通过inode找到文件

linux 通过文件夹中会有一张 文件名和inode一一对应关系的表 (名字) 去找inode号 inode指向对应的实际数据

1.用户访问文件时 先去查找 自己 文件夹中的目录项

2.文件名和inode之间对应的关系

3.通过 inode号利用指针 去指向 实际数据

直接指针:直接指向的block块存储的是文件的数据(指向数据)

间接指针:指向的block块继续当作指针块使用(指向指针)

1.4、使用命令后,inode号的变化

1.4.1、cp 命令
  • 分配一个空闲的inode号,在inode表中生成新条目

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

  • 拷贝数据生成新的文件

1.4.2、rm 命令
  • 硬链接数递减,从而释放的inode号可以被重用

  • 把数据块放在空闲列表中

  • 删除目录项

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

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

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

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

1.4.4、寻找空文件(清理容量)
find ./ -empty 寻找空文件

2、硬链接和软连接

硬连接:同一个文件取不同的名或者叫多个名字,不支持文件夹,创建一个连接数加一,多路径访问。他们最终都指向硬盘上同一个文件

软连接:类似于windows里快捷方式,软连接,符号连接

ln  [选项]  文件名        创建硬链接

选项  -s                  创建软连接

3、分析日志文件

什么是日志文件

他就是记录你的操作、系统的事件。在日常工作中可以通过阅读日志,去解决报错

日志文件里面分为三种:

1.内核及系统日志:由rsyslog统一进行管理,日志格式基本相似

2.用户日志:记录用户登录及退出系统的相关信息

3.程序日志:由各种应用程序独立管理的日志文件,记录格式的不统一

默认位于/var/log目录下

主要日志文件日志保存位置
内核及公共消息日志/var/log/messages
计划任务/var/log/cron
系统引导日志/var/log/dmesg
邮件系统日志/var/log/maillog

用户登录日志:/var/log/lastlog、/var/log/wtmp、/var/log/btmp、/var/log/secure

3.1、rsyslog系统日志服务

rsyslog是CentOS 6以后版本的系统管理服务:它提供了高性能,出色的安全性和模块化设计。尽管rsyslog最初是常规的syslogd,但发展成为一种瑞士军刀式的记录工具,能够接受来自各种来源的输入,并将其转换,然后输出到不同的目的地。

当应用有限的处理时,RSYSLOG每秒可以将超过一百万的消息传递到本地目的地。即使在远程的目的地和更精细的处理中,性能通常也被认为是惊人的”。

rsyslog的特征:多线程,支撑多协议,支撑多数据库,有强大的过滤器,自定义输出格式,适用于企业级

/etc/rsyslog.conf 配置文件格式:由三部分组成

  • MODULES:相关模块配置

  • GLOBAL DIRECTIVES:全局配置

  • RULES:日志记录相关的规则配置

3.2、自定义日志位置

  • 大的程序有自己的日志文件,而小的没有,他们共用一个日志,将所有日志信息全放进去。
  • 可以用rsyslog命令自定义日志文件的位置,也就是一个程序单独一个位置放日志

这里拿ssh做模拟

vim /etc/ssh/sshd_config   进入ssh配置文件

将32行 复制并备份
行首加 # 表注释
修改成下图

 

vim /etc/rsyslog.conf
在76行添加自己的文件位置
local6.*  /var/log/ssh.log

输入 systemctl restart rsyslog.service sshd
重启服务

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值