04

2025Mar

Success depends on effort, not just desire.

成功源于努力,而非渴望。

  • 嘿,朋友,在当下这段时间,我们生命当中有了彼此,感谢遇见!
  • 不知道为什么,我觉得你和别人很不一样
  • 希望你接下来的日子里,没有狗血情节,也没有崎岖波折,平平淡淡,顺顺当当,健健康康,喜乐安好!
  • 不要因为别人的一句话,而夺走你今天的快乐
  • 你的评论和鼓励像一碗粥,可能不够粘稠,却足以温暖我的心
  • 亲爱的朋友,我宁愿看到你伤心愤怒的样子,也不愿意看见你假装高兴
  • 说了这么多,就想告诉你,我很在乎你,不是因为我执着,而是因为你值得
  • 你可能想问我过的怎么样?我过得还可以,不好不坏,不惊不喜,一切只是还可以
  • 一年四季会有很多意外,但最迷人的还是遇见了你
  • 花开可要欣赏,然后就去远行。唯有不等花谢,才能记得花红
  • 我的酒量,大概就是三瓶啤酒或者和半杯白酒,亦或者你的微微一笑
  • 晚安这个词,好像变成了一种礼貌,睡不睡谁知道呢,反正话题是终止了……
  • 话说多了比较难堪,不如沉默来得可爱, 就这样吧,谢谢你呀 !

Linux文件系统与日志分析

一、文件系统

1、 inode 表结构

每个文件都有自己的文件属性信息,比如:文件的大小,时间,类型,权限等,称为文件的元数据;元数据是存放在inode表中。inode 表中有很多条记录组成,每一条记录对应的存放了一个文件的元数据信息。

inode表结构:

  • inode number 节点号

  • 文件类型

  • 权限

  • UID

  • GID

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

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

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

  • 有关文件的其他数据

2、 inode 命令

查看inode:    ls   -i     可以查看文件或文件夹的iode号

3、 stat 命令

可以查看文件或文件夹的详细信息

stat    文件名    

 当文件有过变动,文件信息中的最近时间会有变动,有三个时间;
最近访问atime:查看文件的时间
最近更改mtime:最近更改文件内容的时间,注意:更改完内容之后,ctime也会改变
最近改动ctime:最近更改文件元信息的时间,比如改变权限等

4、 inode

每个文件在磁盘中存储时,磁盘都会分配一个inode号,这个inode号是有限的,具体多少主要看磁盘的大小;所以就会有一种可能,磁盘有很多空间但是却无法存储,原因就是inode号用完了;

解决办法就是,删掉一些空的文件,或者就直接加硬盘。

inode也会消耗硬盘空间,每个inode的大小一般是128字节或256字节,inode号在同一个文件系统内唯一,在不同的文件系统中可以重复.(在不同的分区或者不同的硬盘)。

查看每个硬盘分区的inode总数和已经使用的数量,可以使用命令: df     -i

文件的删除,移动也可以用inode号来进行选择

 

二、日志系统

日志主要是用来记录程序在运行时发生的各种事件和一些报错信息,将系统和应用发生的事件记录至日志中,以助于排错和分析使用。

日志的分类:

系统日志: 由系统服务rsyslog统一进行管理,日志格式基本相似,其主配置文件/etc/rsyslog.conf
用户日志:记录系统用户登录及退出系统的相关信息
程序日志:由各种应用程序独立管理的日志文件,记录格式不统一

日志默认保存在:/var/log 

2.1 rsyslog 系统日志服务

CentOS 6中常用的日志收集软件是rsyslog:

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

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

rsyslog下载官网:http://www.rsyslog.com/

rsyslog 特性

  • 多线程

  • 支持多种协议:UDP, TCP, SSL, TLS, RELP

  • 支持多种数据库:MySQL, PGSQL, Oracle实现日志存储

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

  • 自定义输出格式

  • 适用于企业级

2.2日志文件

2.1普通文件日志

  • /var/log/secure:系统安全日志,文本格式,应周期性分析

  • /var/log/btmp:当前系统上,用户的失败尝试登录相关的日志信息,二进制格式,lastb命令进行查看

  • /var/log/wtmp:当前系统上,用户正常登录系统的相关日志信息,二进制格式,last命令可以查看

  • /var/log/lastlog:每一个用户最近一次的登录信息,二进制格式,lastlog命令可以查看

  • /var/log/dmesg:CentOS7 之前版本系统引导过程中的日志信息,文本格式,开机后的硬件变化将不再记录专用命令dmesg查看,可持续记录硬件变化的情况

  • /var/log/boot.log 系统服务启动的相关信息,文本格式

  • /var/log/messages :系统中大部分的信息

  • /var/log/anaconda : anaconda的日志操作系统安装时安装的软件信息

当一个程序无法启动时:

systemctl         start     程序名     (可以查看程序的报错信息,知道为什么起不来)

这样看由于屏幕的限制有时候会无法屏显示,可以

systemctl         start     程序名  >   a

把报错结果导给文件a 然后

cat   a    这样就能全部看到了

 

2.3特殊软件日志

一般大型软件都有属于自己的日志文件,但是小型的软件是没有自己的日志文件的,会保存在/var/log/messages中,时间比较久或者软件太多的话会分不清那个日志是属于哪个的,看清起来很麻烦,所有一些小心软件可以自己指定日志存储位置。

rsyslog  这个软件就可以分割日志,把日志独立出来,前提条件是这个软件要支持rsyslog

rsyslog分成三部分:

  • MODULES:相关模块配置

  • GLOBAL DIRECTIVES:全局配置(兜底的配置,所有的软件适用)

  • RULES:日志记录相关的规则配置(对于默写软件日志的特殊设置)

全局配置和软件的单独配置冲突是,单独配置先生效,优先级更高

 

 

 

当有自定义日志设置的时候在local 7*  下面进行设置,可以设置为local 0-6;local 7被占用了无法设置,当有软件需要自己设置日志目录时在这里添加

 

2.4实际展示,将ssh服务的日志单独设置

首先进入ssh的文件配置中

 在rsyslog中修改个性化的日志配置

 在ssh中配置他的日志保存为local6

这样ssh的日志目录就被修改好了,我们可以看一下

 然后用另外一台电脑ssh一下这条电脑的ip,远程登陆一下

 

 这台电脑里面的sshlog就有显示了,把SSH的日志独立出来了

这样是本地的日志保存,假如把日志保存到别的计算机上面时,只要把日志到给另外一台机器,让他做日志服务。

首先要开启远程日志功能

用命令   vim /etc/rsyslog.conf     两台机器之间都要开启这个功能

在发送的计算机中

 然后wq保存退出之后,计算机就会一直监听了

在接收的计算机中

 这样就配置好了,接受的电脑中就可以接受日志文件了。

 

posted @   行走的泡泡  阅读(545)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示