文件系统和日志分析
目录
inode和block概述
文件数据包括元信息与实际数据
如何看inode信息:
同一个硬件设备上(同一个分区)inode是唯一的(同一硬件/分区)
inode是一个资源,可被用完
文件存储在硬盘上,硬盘最少存储单位是"扇区",每个扇区存储512字节
blokc(块)
inode包含文件的元信息:
文件的字节数
文件的拥有者的
Linux系统文件的三个主要的时间
ctime(最近访问):最后一次查看文件
atime(最近更改):最近更改文件内容的时间,注:更改完内容之后,ctime也会改变
mtime(最近改动):最近更改文件元信息的时间,比如改变权限等
目录文件(文件夹)的实际内容是里面的文件名
实际数据由指针指向
删文件是删的指针和inode号
我的空间足够,为什么不能继续创建文件:inode号用完了
解决方法:逻辑卷就扩容,如果不是就删除无用文件
查看inode号 ls -i

inode也会消耗硬盘空间
indode的特殊作用:
移动或重命名文件时,只改变文件名,不影响inode号
打开1个文件后,系统通过inode号来识别该文件,不再考虑文件名
cp和inode:


inode 的分配不是按顺序,是随机分配

日志:
用于记录系统、程序运行中发生的各种事情
通过阅读日志,有助于诊断和解决系统故障
常见的一些日志文件:
内核及系统日志/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等命令查看
日志文件的格式:
1、时间产生的时间
2、产生事件的服务器的主机名
3、产生事件的服务器或程序名
4、事件的具体信息
日志消息的级别:

软件由他的配置文件决定
决定服务方式、网络地址、个性化功能
yum rpm /etc
rpm -qc 软件名 (该软件的配置文件位置)
.conf 为配置文件
在改配置文件之前一定要备份文件
查询当前登录用户的情况
users //简单地输出当前登录的用户名称

who 用于报告当前登录到系统中的每个用户的信息。使用该命令,系统管理员可
以查看当前系统存在哪些不合法用户,从而对其进行审计和处理。who 的默认输出包括用 户名、终端类型、登录日期及远程主机
w 用于显示当前系统中的每个用户及其所运行的进程信息,比 users、who 命令的 输出内容要丰富一些
last 命令用于查询成功登录到系统的用户记录
lastb 命令用于查询登录失败的用户记录
rsyslog系统日志服务
rsyslog 特性
- 多线程
- UDP, TCP, SSL, TLS, RELP
- MySQL, PGSQL, Oracle实现日志存储
- 强大的过滤器,可实现过滤记录日志信息中任意部分
- 自定义输出格式 可以日志
- 适用于企业级
/etc/rsylog.conf
vim /etc/rsylog.conf
系统日志术语:
facility:设施(类别),从功能或程序上对日志进行归类
内置分类:auth(验证),authpriv,cron(定时任务),daemon,
Priority 优先级别,从低到高排序
自定义分类:local-local7
local0
local1
0 7
/var/log/ssh.log
你需要存储的日志类型.(以.为分隔符)你想要关注的级别 放到哪一个文件中

实际操作:
将ssh服务的日志单独设置
有些服务有自己的日志,有些小的软件没有自己的日志系统,所以要依赖于rsyslog
ssh远程链接 协议→openssh软件
ssh远程链接:1、压缩功能2、传输快3、密文传输 (telnet是明文)
openssh软件提供了ssh远程链接的功能
客户端 通过 xshell软件 链接到服务器 (7-1) //ssh 192.168.1.12
ss -ntap 查看端口有无开启 ss -ntap | grep 22
1、将ssh服务的日志文件独立出来
原来ssh /var/log/secure
vim /etc/ssh/sshd_config
修改ssh配置文件,注释32行,32下一行添加自己的自定义
SyslogFacility LOCAL6

2、vim /etc/rsylog.conf
在类别那的local6
local6.* /var/log/ssh.log

3、重启:
systemctl restart rsyslog.service
systemctl restart sshd
4、查看:
cat /var/log/ssh.log

网络日志(远程日志功能)
vim /etc/rsyslog.conf
大概在19行和20分别取消注释
在57和56行
authpriv.* @@192.169.91.
systemctl restart rsyslog.service
hostnamectl set-hostname abc
日志保存位置
默认位于:/var/log 目录下
主要日志文件介绍:

[root@centos7-2 ~]#yum install vsftpd -y
[root@centos7-2 ~]#ss -natap |grep 21
[root@centos7-2 ~]#systemctl start vsftpd
[root@centos7-2 ~]#yum install ftp -y
[root@localhost ~]#ftp 192.168.91.101
Connected to 192.168.91.101 (192.168.91.101).
220 (vsFTPd 3.0.2)
Name (192.168.91.101:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> help
anonymous_enable=YES 支持匿名用户,CentOS8 默认不允许匿名
no_anon_password=YES 匿名用户略过口令检查 , 默认NO
listen_port=2121 默认值为21
#anon_upload_enable=YES
anon_upload_enable=YES 匿名上传,注意:文件系统权限
anon_mkdir_write_enable=YES 匿名建目录
journalctl
排错
看哪里错了(大概位置)
journalctl -xe
--no-pager(显示全)
做好日志权限管理
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)