linux基础之文件系统与日志分析

目录

一、linux文件系统

1.1 inode与block

1.2 inode与block的关系

1.3  linux系统文件的三个时间属性

1.4 cp 和 inode

cp 命令:

rm 命令:

mv和inode

二、日志文件

2.1 日志的作用

2.2 常用日志

2.5 日志消息的级别

三、rsyslog日志处理系统

3.1  rsyslog 相关文件

3.2 rsyslog配置文件

四、实例

4.1 将ssh服务日志单独设置

步骤:

1.进入rsyslog配置文件,添加自己的文件位置

2.进入ssh配置文件,将ssh配置成使用local5

3.重启sshd服务和rsyslog服务

4.验证,并查看本机日志记录(实时查看 tail -f /data/ssh.log)

4.2  通过网络将本地的日志远程备份到另一台机器

步骤:

1.关闭两台机器的防火墙工具与selinux

2.打开配置文件,进行修改配置

  3.重启服务,并查看514端口是否启动

4.测试使用logger写入一条测试日志

5.xiaohong方开启TCP和端口514

6.重启日志服务

7.查看是否收到日志


一、linux文件系统

1.1 inode与block

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

block:(块)

  • 连续的八个扇区组成一个block(4k)
  • 是文件存取的最小单位。

inode:(索引节点)

  • 中文译名为“索引节点”,也叫i节点;
  • 用于存储文件元信息
  • inode号在不同设备上,是可能相同的,在相同设备上,一定不同。

1.2 inode与block的关系

  • 文件数据包括实际数据与元信息(类似文件属性)。文件数据存储在“块"中,存储文件元信息(比如文件的创建者、创建日期、文件大小、文件权限等)的区域就叫做inode表。 因此,一个文件必须占用一个inode,并且至少占用一个block。du 显示
  • inode不包含文件名。文件名是存放在目录文件夹当中的。Linux 系统中一切皆文件,因此目录也是一种文件。
  • 每个inode都有一个号码,操作系统用inode号码来识别不同的文件。Linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称,文件名和inode号码是一一对应关系,每个inode号码对应一个或多个文件名。

1.3  linux系统文件的三个时间属性

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

1.4 cp 和 inode

cp 命令:
  • 分配一个空闲的inode号,在inode表中生成新条目
  • 在目录中创建一个目录项,将名称与inode编号关联
  • 拷贝数据生成新的文件
rm 命令:
  • 硬链接数递减,从而释放的inode号可以被重用
  • 把数据块放在空闲列表中
  • 删除目录项
  • 数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖

mv和inode

  • 如果mv命令的目标和源在同一设备,
  • 不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动!
  • 删除旧的目录对应关系新建目录对应关系

二、日志文件

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

2.1 日志的作用

  • 将系统和应用发生的事件记录至日志中,以助于排错和分析使用.
  • 记录的内容包括:时间,地点,人物,事件

2.2 常用日志

日志文件位置日志文件说明
/var/log/messages内核和公共日志它是核心系统日志文件,其中包含了系统启动时的引导信息,以及系统运行时的其他状态消息。I/O 错误、网络错误和其他系统错误都会记录到此文件中。其他信息,比如某个人的身份切换为 root,已及用户自定义安装软件的日志,也会在这里列出。
/var/log/cron 计划任务日志记录与系统定时任务相关的曰志
/var/log/dmesg 系统引导日志记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息
/var/log/maillog 邮件日志记录邮件信息的曰志
用户日志
/var/log/lastlog记录系统中所有用户最后一次的登录时间的曰志。这个文件也是二进制文件.不能直接用Vi 查看。而要使用lastlog命令查看
/var/log/secure记录验证和授权方面的倍息,只要涉及账户和密码的程序都会记录,比如系统的登录、ssh的登录、su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中
/var/log/wtmp永久记录所有用户的登陆、注销信息,同时记录系统的启动、重启、关机事件。同样,这个文件也是二进制文件.不能直接用Vi查看,而要使用last命令查看
/var/tun/ulmp记录当前已经登录的用户的信息。这个文件会随着用户的登录和注销而不断变化,只记录当前登录用户的信息。同样,这个文件不能直接用Vi查看,而要使用w、who、users等命令查看

2.4 日志文件的格式:

日志文件的格式包含以下 4 列:

  1. 事件产生的时间。
  2. 产生事件的服务器的主机名。
  3. 产生事件的服务名或程序名。
  4. 事件的具体信息

2.5 日志消息的级别

在 Linux 内核中,根据日志消息的重要程度不同,将其分为不同 的优先级别(数字等级越小,优先级越高,消息越重要)

EMERG(紧急)会导致主机系统不可用的情况。
1ALERT(警告)必须马上采取措施解决的问题
2CRIT(严重)比较严重的情况
3ERR(错误)运行出现错误
4WARNING(提醒)可能影响系统功能,需要提醒用户的重要事件
5NOTICE(注意)不会影响正常功能,但是需要注意的事件
6INFO(信息)一般信息
7DEBUG(调试)程序或系统调试信息等

三、rsyslog日志处理系统

3.1  rsyslog 相关文件

  • 程序包:rsyslog

  • 主程序:/usr/sbin/rsyslogd

  • CentOS 6:/etc/rc.d/init.d/rsyslog {start|stop|restart|status}

  • CentOS 7,8:/usr/lib/systemd/system/rsyslog.service

  • 配置文件:/etc/rsyslog.conf,/etc/rsyslog.d/*.conf

  • 库文件: /lib64/rsyslog/*.so

3.2 rsyslog配置文件

    配置文件路径:/etc/rsyslog.conf

   由三部分组成:

  • MODULES:相关模块配置

  • GLOBAL DIRECTIVES:全局配置

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

各个模块的含义及内容:

#### MODULES ####    //相关模块配置

# Provides UDP syslog reception
#$ModLoad imudp         //使用UDP协议传输日志数据
#$UDPServerRun 514      //端口号为514端口
  
# Provides TCP syslog reception
#$ModLoad imtcp               //使用TCP协议传输日志数据                        
#$InputTCPServerRun 514        //端口号为514端口


#### GLOBAL DIRECTIVES ####  //全局配置不常用可忽略


#### RULES ####         //日志记录相关的规则配置


*.info;mail.none;authpriv.none;cron.none                /var/log/messages

//*表示所有*. info表示所有级别,分号隔开none表示没有级别即不记录

//本行中表示不记录mail、authpriv、cron,其他所有记录到/var/log/messages文件中


authpriv.*                                              /var/log/secure

//authpriv所有等级日志记录到/var/log/secure文件中,文件可以自定义路径和文件名

//可以使用1个@或者2个@+ip的形式将日志传到其他相通的服务器上


mail.*                                                  -/var/log/maillog

//mail所有等级日志记录到-/var/log/maillog文件中,文件可以自定义路径和文件名

//可以使用1个@或者2个@+ip的形式将日志传到其他相通的服务器上


cron.*                                                  /var/log/cron

//cron所有等级日志记录到/var/log/cron文件中,文件可以自定义路径和文件名

//可以使用1个@或者2个@+ip的形式将日志传到其他相通的服务器上


local7.*                                                /var/log/boot.log

//local7表示自定义服务,范围为0-7都可以使用,在支持的服务配置文件中也要写对应的local等级

// /var/log/boot.log表示存到此目录下的文件中,文件可以自定义路径和文件名

//可以使用1个@或者2个@+ip的形式将日志传到其他相通的服务器上

四、实例

4.1 将ssh服务日志单独设置

步骤:
1.进入rsyslog配置文件,添加自己的文件位置

使用yy p复制粘贴后 自定义文件的位置

2.进入ssh配置文件,将ssh配置成使用local5

3.重启sshd服务和rsyslog服务

4.验证,并查看本机日志记录(实时查看 tail -f /data/ssh.log)

4.2  通过网络将本地的日志远程备份到另一台机器

步骤:
1.关闭两台机器的防火墙工具与selinux

2.打开配置文件,进行修改配置

    开启514端口:

  3.重启服务,并查看514端口是否启动

4.测试使用logger写入一条测试日志

5.xiaohong方开启TCP和端口514

6.重启日志服务

7.查看是否收到日志

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值