Linux文件系统与日志

发布时间:2024年01月08日

一、Linux文件系统

1. inode 和inode表

1.1 inode 的概念

文件是存储在硬盘上的,硬盘的最小存储单位叫做“扇区”(sector),每个扇区存储512字节

?一般连续八个扇区组成一个"块”(block),一个块是4K大小,是文件存取的最小单位。操作系统读取硬盘的时候,是一次性连续读取多个扇区,即一个块一个块的读取的。4k一读,8个扇区一读

文件数据存储在“块"中,存储文件元信息(比如文件的创建者、创建日期、文件大小、文件权限等)的区域就叫做inode表。 因此,一个文件必须占用一个inode,并且至少占用一个block。du ?显示 ?

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

每个inode都有一个号码,操作系统用inode号码来识别不同的文件。Linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称,文件名和inode号码是一一对应关系,每个inode号码对应一个或多个文件名。

? ?唯一 ? ?同一文件系统() ?不同的文件。indoe号是有限的资源,它的多少和磁盘大小无关

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

  • block:(块)连续的八个扇区组成一个block(4k);是文件存取的最小单位。
  • inode:(索引节点)中文译名为“索引节点”,也叫i节点;用于存储文件元信息,同一个硬件设备上是唯一的,不可以跨设备,inode实际是资源,是可以被用完的,用完后无法创建任何文件。
移动或重命名文件时,只改变文件名,不影响inode号码

1.2 查看indoe号码命令

1.	查看文件名对应的inode号码
	ls -i 文件名
2. 	查看文件inode信息中的inode号码
    stat 文件名

文件信息

文件的字节数(字节占用多少空间,也称文件大小)

文件拥有者的 User ID

文件的 Group ID

文件的读、写、执行权限

文件的时间戳(ctime、atime、mtime)

文件类型

链接数

有关文件的其他数据

不包含文件名,文件名在目录结构中

1.3 信息中的三个主要时间属性

最近访问atime:最后一次查看文件

最近更改mtine:最近更改文件内容的时间,更改完后,ctime也会变

最近改动ctime:最近更改文件元信息的信息(shell类型)

1.4 关于inode出现的问题解决方法

① 磁盘空间还剩余很多但无法继续建立文件

解决方法:lvm扩容或普通分区删除没有用的文件

删除inode号的方法:
 
方法一: find 文件位置 -inum inode号码 -exec rm -rf {} \;
 
方法二: find 文件位置 -inum inode号码 -delete

删除不释放空间

解决方法: lsof lgrep delete

? ? ? ? ? ? ? 或echo “? ” > /boot/bigfile

二、日志

日志默认保存位置位于:/var/log 目录下

2.1 日志的功能和分类

功能:

用于记录系统、程序运行中发生的各种事件

通过阅读日志,有助于诊断和解决系统故障

分类:

内核及系统日志

由系统服务rsyslog统一进行管理,日志格式基本相似

主配置文件/etc/rsyslog.conf

用户日志

记录系统用户登录及退出系统的相关信息

程序日志

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

三、系统日志管理

3.1? rsyslog?系统日志服务

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

[root@localhost ~]#tail -f /var/log/secure
#查看ssh服务的日志位置

[root@localhost ~]#vim /etc/ssh/sshd_config
#修改ssh配置文件,32下一行添加自己的自定义
32 #SyslogFacility AUTHPRIV
33 SyslogFacility LOCAL6

[root@localhost ~]#vim /etc/rsyslog.conf
#76 行添加自己的文件位置
local6.*                                                /opt/ssh.log

[root@localhost log]#systemctl restart rsyslog.service sshd
#重启服务

3.3? 实际操作? 网络日志(远程日志功能)

第一步:两边都要关闭防火墙,在19、20行删除#

第二步:在发送端的55行添加接收端地址

第三步,写入信息测试日志

文章来源:https://blog.csdn.net/mikechen1/article/details/135455738
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。