tsumiki

导航

linux 文件系统 与 日志分析

一.inode 表

1)indoe 表中 保存的信息

inode number 节点号

文件类型

权限

UID

GID

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

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

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

有关文件的其他数据

 

2)查看 indoe 号

ls -i

stat

stat [选项] 文件

最近访问:atime

最近更改文件:ctime

最近改动权限:mtime

3)TIPS

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

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

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

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

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

唯一 同一文件系统() 不同的文件

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

4)改变文件状态 和 indoe 的关系

cp 命令

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

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

拷贝数据生成新的文件

rm 命令

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

把数据块放在空闲列表中

删除目录项

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

 

删除文件时空间不释放,除非覆盖

可以使用echo " " > 文件 来清空彻底删除

mv 命令

如果 mv 命令的目标和源在同一个设备,不影响inode表 (除时间戳)或磁盘上的数据位置:没有数据被移动!

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

 二.日志

日志默认放在 /var/log 中

1)常见 日志文件

/var/log/message      内核 和 公共日志

/var/log/cron             计划任务日志         记录与系统定时任务相关日志

/var/log/maillog         邮件日志                记录邮件信息的日志

/var/log/lastlog          记录系统中所有用户最后一次登录时间  使用 lastlog 命令查看

/var/log/secure          记录验证和授权方面的倍息     系统,ssh的登录  su切换 sudo授权

 

2)日志文件的格式

1.事件产生时间

2.产生事件的服务器的主机名

3.产生事件的服务名或者程序名

4.事件的具体信息

 3)内核和公共日志

日志的配置文件在 /etc/rsyslog.conf

信息的优先级

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

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

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

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

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

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

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

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

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

/var/log/message 

一条消息包括四个字段:

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

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

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

消息:消息的具体内容

 

三.用户日志

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

不能用tail等文本查看工具浏览,要使用who 、 w 、users 、last和lastb

1)查询当前登录的用户情况

users 

简单输出当前登录的用户名称 单个用户不止一个登录会话会显示相同次数

who

报告当前登录到系统中的每个用户的信息 

默认输出包括

 用户名            终端类型                             登录日期                        远程主机

w

显示当前系统中的每个用户及其所运行的进程信息,比users、who命令的输出内容更丰富

 2)查询用户登录的历史记录

last

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

 lastb

查询登陆失败的用户记录  /var/log/secure 中也能获得信息

 

posted on 2023-07-31 16:04  Tsumiki  阅读(29)  评论(0编辑  收藏  举报