如何查看indoe号
ls -i
df -i
stat /文件名
有三个时间
atime 最后一次查看文件
mtime 最近更改文件内容
ctime 最近更改文件元信息的时间如更改权限等
1.文件存储在硬盘上 扇区 是硬盘上最小的存储单位 每个扇区1存储512字节1
2.八个连续的扇区组成一个块 一个块是4k(8*512=4096字节) 读取硬盘时是一块一读
3.文件数据包包括诗句数据和元信息,元信息类似文件属性包含创建者、创建日期、文件大小、文件权限等信息。 存储文件元信息的区域就叫做inode表,一个文件必须占用一个inode,并且至少占用一个block。
4.inode不包含文件名。文件名是存放在目录文件夹当中的。Linux 系统中一切皆文件,因此目录也是一种文件。
5.inode号 同一文件系统中唯一 用于区分不同的文件
系统会先根据文件名去查找它对应的inode号码:通过inode号码,获取inode信息;根据inode信息,看该用户是否具有访问这个文件的权限;如果有,就指向相对应的数据block,并读取数据。
元数据包含mode 权限 owner info:所有者 size:大小 timestamps:三个时间戳等信息
指针指向实际数据 直接指针默认为12个
直接指针直接指向实际数据的地址
最大文件为4*12=48k
由于文件过大,直接指针无法满足超过48k的文件所以直接出现了间接指针,间接指针指向的不是实际数据而是指针 指针书为4k/4字节每个指针4字节
目录
目录是特殊的问价,目录文件内保存了此目录中文件的列表和inode number之间的对应关系。
linux通过文件夹中的文件名和inode的对应表去找inode号 inode号直接指向对应的实际数据
一个目录文件的内容就是一个该目录下所有文件目录项的列表。
1.用户访问文件时 先去查找 自己 文件夹中的目录项 , 2文件名和inode之间对应的关系, 3通过 inode号利用指针 去指向 实际数据
cp 和 inode
cp命令
分配一个空闲的inode号。在inode表中生成一个新的inode条目
在目录中创建一个目录项,将名称与inode编号关联
拷贝数据生成新的文件
rm 命令
硬链接数递减,从而释放的inode号可以被重用
把数据块放在空闲列表中
删除目录项
数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖
mv和inode
-
如果mv命令的目标和源在同一设备,
不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动!
删除旧的目录对应关系新建目录对应关系
删除文件空间不释放
可能是因为文件正在被占用 通过echo " " > /boot/bigfile 发送空白来刷新文件
1.1 硬链接与软连接
ln [-s] 源文件或目录… 链接文件或目标位置 创建软连接
ln 硬链接
对比项 | 硬连接 | 软连接 |
---|---|---|
本质 | 本质是同一个文件 | 本质不是同一个文件 |
inode | 相同 | 不同 |
连接数 | 创建新的硬链接,链接数会增加,删除硬链接,链接数减少 | 删除新建不会改变 |
文件夹 | 不支持 | 支持 |
删除源文件 | 只是链接数减一,但链接文件的访问不受影响 | 无法访问连接文件 |
文件类型 | 和源文件相同 | 链接文件,和源文件无关 |
文件大小 | 和源文件相同 | 源文件的路径的长度 |
日志
内核及系统日志由系统服务rsyslog 统一管理 ,根据其主配置文件/etc/rsyslog.conf
Linux 操作系统本身和大部分服务器程序的日志文件都默认放在目录/var/log/下
常见日志文件位置
日志文件位置 | 日志文件说明 |
/var/log/messages 内核和公共日志 | 核心系统日志文件,他包含了系统启动该是的引导信息,运行时的状态。网络等各类报错信息,用户间切换以及安装软件等 |
/var/log/cron 计划任务日志 | 记录与系统定时任务相关的曰志 |
/var/log/dmesg 系统引导日志 | 记录开机时自检信息。可使用demesg直接查看内核自检信息 |
/var/log/maillog 邮件日志 | 记录邮件信息的体制 |
用户日志 | |
/var/log/lastlog | 记录系统中所有用户最后一次的登录时间的曰志。不能用vim查看,要是哟lastlog |
/var/log/secure | 记录验证和授权方面的倍息,只要涉及账户和密码的程序都会记录 |
/var/log/wtmp | 永久记录所有用户的登陆、注销信息,同时记录系统的启动、重启、关机事件。 |
/var/tun/ulmp | 记录当前已经登录的用户的信息。 只记录当前登录用户的信息 |
日志文件的格式:
时间发生的时间 主机名 服务器或程序名 时间的具体信息即发生了什么
内核和公共日志
vim /etc/rsyslog.conf 系统默认日志设置
0 EMERG(紧急):会导致主机系统不可用的情况。
1 ALERT(警告):必须马上采取措施解决的问题。
2 CRIT(严重):比较严重的情况。
3 ERR(错误):运行出现错误。
4 WARNING(提醒):可能影响系统功能,需要提醒用户的重要事件。
5 NOTICE(注意):不会影响正常功能,但是需要注意的事件。
6 INFO(信息):一般信息。
7 DEBUG(调试):程序或系统调试信息等
内核和公共消息日志存储位置
内核及大多数系统消息被记录到公共日志文件/var/log/messages 中,而其他一些程序或有独立的日志文件
以公共日志/var/log/messages 文件的记录格式为例,其中每一行表示一条日志消息,每
一条消息均包括以下四个字段。
-
时间标签:消息发出的日期和时间。
-
主机名:生成消息的计算机的名称。
-
子系统名称:发出消息的应用程序的名称。
-
消息:消息的具体内容。
用户日志
在 wtmp、btmp、
lastlog 等日志文件中,保存了系统用户登录、退出等相关的事件消息。
这些文件无法直接用文本工具查看。需要使用 who、w、users、last 和 lastb 等用户查询命令来获取日志信息。
users 用法单一只是简单的输出用户名
who
可查看当前系统中每个用户的信息,
用途:管理员用户使用此命令可以此为依据对用户进行判断
w
比上述输出更详细的用户信息,包括其所运行的进程
查询用户登录的历史记录
last
查看你成功登录到系统的用户的记录
可根据其数据用以判断账户安全性。
lastb
lastb 命令用于查询登录失败的用户记录,
如登录的用户名错误、密码不正确等情况都 将记录在案。
用以判断账户安全性
系统日志介绍
sysklogd 系统日志服务
system application 记录应用日志
klogd: linux kernel 记录内核日志
格式
日期时间 主机 进程[pid]: 事件内容
rsyslog
rsyslog 特性
多线程
UDP, TCP, SSL, TLS, RELP
MySQL, PGSQL, Oracle实现日志存储
强大的过滤器,可实现过滤记录日志信息中任意部分
自定义输出格式 可以日志
适用于企业级
服务器:提供服务的机器
客户端:需要访问服务的
ELK
由Elasticsearch, Logstash, Kibana三个软件组成
Elasticsearch,用以处理大规模的体制数据,如:Nginx、Tomcat、系统日志等
Logstash对日志进行收集、分析,过滤,并将其存储供以后使用
Kibana 可以提供的日志分析友好的 Web 界面
rsyslog 管理
facility:设施,从功能或程序上对日志进行归类
Priority 优先级别,从低到高排序
debug, info, notice, warn(warning), err(error), crit(critical), alert, emerg(panic)
参看帮助: man 3 syslog,man logger
实际操作,将ssh服务的日志单独设置
安装rsyslog 搭建日志服务器
1.两天设别都安装rsyslog 程序
2.与服务器设备中解除注释相关配置
于客户端 上进行相关配置
配置日志存储位置
重启rsyslog服务并 查看双方设备514端口是否开启
监听服务端 并 于客户端向日志文件中写入
完成