目录
4.验证,并查看本机日志记录(实时查看 tail -f /data/ssh.log)
一、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 列:
- 事件产生的时间。
- 产生事件的服务器的主机名。
- 产生事件的服务名或程序名。
- 事件的具体信息
2.5 日志消息的级别
在 Linux 内核中,根据日志消息的重要程度不同,将其分为不同 的优先级别(数字等级越小,优先级越高,消息越重要)
0 | EMERG(紧急) | 会导致主机系统不可用的情况。 |
1 | ALERT(警告) | 必须马上采取措施解决的问题 |
2 | CRIT(严重) | 比较严重的情况 |
3 | ERR(错误) | 运行出现错误 |
4 | WARNING(提醒) | 可能影响系统功能,需要提醒用户的重要事件 |
5 | NOTICE(注意) | 不会影响正常功能,但是需要注意的事件 |
6 | INFO(信息) | 一般信息 |
7 | DEBUG(调试) | 程序或系统调试信息等 |
三、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端口: