文件是存储在硬盘上的,硬盘上的最小存储单位是扇区,每个扇区的大小是512字节。
inode:存储元信息(包括文件的属性,权限,创建者,创建日期等等)
block:块,连续的八个扇区组成一个块,一个块的大小是4k,创建一个文件,最小也要占4k。块是文件的最小存储单位。
操作系统读取硬盘,是一次性读取多个扇区,一个块一个块的读取数据。
创建文件:实际空间大小的要占,第二个就是元信息。元信息和实际数据都保存在硬盘上。元信息:inode号 128字节或者256字节。
一个文件必须占用一个inode(只要创建文件必须有一个inode号)
至少占用一个block(空文件也要占一块)
时间戳:
atime:访问 读取文件就会更新这个时间
mtime:修改文件数据,更改文件的属性,都会更新这个时间
ctime:修改文件的权限也会更新这个时间。
inode号:linux都是识别文件的inode号
元信息发生了变化,inode号也会随之变化。
inode号的总数。
根据磁盘空间的大小来确定inode号的大小。
磁盘越大inode号越多,磁盘越小inode号越小。
inode号和文件名分离,二者只是映射关系,linux系统的特有现象:
1、如果文件包名含有特殊字符,rm可能无法正常删除,可以直接删除inode号
2、移动文件,重命名,inode号时不变的
3、一但开始对文件操作后,后续所有的认证和识别都是通过inode号来的,不在考虑文件名
4、元信息发生变化,inode号也会发生变化
1、ext4 把inode耗尽,看看还能不能写入?
2、xfs 要有结论 20M 然后模拟把inode耗尽,看看还能不能写入?能写入的话,还能写入多少
如果inode号满了,ext4和xfs之间有什么区别?
在 ext4 文件系统中,inode 号是静态分配的,即在创建文件系统时就确定了 inode 号的数量。一旦 inode 号用完,即使磁盘上还有剩余空间,也无法再创建新的文件。
而在 xfs 文件系统中,inode 号是动态分配的。它会根据需要自动分配 inode 号,因此理论上可以支持几乎无限数量的 inode。 xfs文件系统,如何能够实现备份和恢复?
centos7默认使用的文件系统就是xfs,
xfsdump 备份
xfsrestore 恢复
xfsdump命令的选项:
-f 指定需要的备份的硬盘分区(硬件设备的挂载目点)
-L 指定标签
-M指定设备标签
-s 备份单个文件,-s 后面不能直接跟路径
xfsdump使用限制:
1、只能备份xfs的文件系统
2、只能备份已经挂载的文件系统
3、只有root权限才能进行备份
4、备份之后的数据要恢复,只能使用xfsretore解析恢复
5、如果两个设备的uuid相同,不能备份(这种情况几乎不会有)
备份完之后,恢复文件,inode号是否会发生变化?
indoe号会重新分配
日志分析:
系统的日志类型以及日志如何分析
Linux系统本身的日志和大部分的服务程序的日志都在/var/log/里面。
/var/log/messages 记录了Linux的内核消息,以及各种应用程序的公共日志消息。
应用程序公共日志:开 关 重启 网络错误, 程序故障这些都属于公共日志。
访问日志和一些自由业务日志不包含其中。
cron:记录的是定时任务的日志
dmesg:引导过程中的日志信息
maillog:记录进入或者发出的系统电子邮件信息
secure:用户认证的相关信息
linux的日志级别:数字越小,优先级越高,消息越重要
0 EMERG 紧急 会导致主机系统不可用的情况,系统崩溃。如磁盘满了
1 ALERT 警告 必须要马上采取措施解决问题。密码到期,数据库崩溃。
2 CRIT 严重 比较严重的情况,磁盘读写出了故障,有些程序的功能无法启动。
3 ERR error 错误 运行出现错误,程序启动失败,端口被占用等等,见的最多的情况,出现了也是要尽快解决的。
4 WARNING 提醒 可能会影响功能,需要提醒用户的重要事件,但是不是报错。磁盘使用率到了85%需要注意了。
5 NOTICE 注意 也是需要用户注意的,无需处理。
6 info 信息 一般信息 ,系统或者应用程序在工作中产生的正常消息。
7 DEBUG debug 调试 程序正在开发阶段,调试程序时的信息。
none 没有优先级,不记录任何日志消息。
日志级别怎么定义:
*.info : * 表示所有,表示系统当中的设备,或者程序。info:包含info以及info级别以上的日志。
auth 用户认证产生的日志
daemon 守护后台进程的进程
authpriv :SSH,FTP 登录验证的信息。
news: 网络传输产生的消息
syslog :系统的相关日志
kern :系统进程日志
local0-local7:自定义程序的日志
uucp:unix-to-unix copy 两个linux之间的通信
mail.info /var/log/mail.log :记录邮件的信息,包含info和info以上的信息,记录到/var/log/mail.log
May 31 13:46:02 test1 systemd:Starting The Apache HTTP Server...
May 31 13:46:02:表示当前日志发生的时间
test1 :表示发生的主机名
systemd:哪个系统产生了这个日志
Starting The Apache HTTP Server... :日志的具体内容。
第一个实验:
ssh的日志单独的列出来,作为一个独立的日志文件。
第一步关闭防火墙和防御机制,打开rsyslog的系统管理日志
第二步打开vim编辑声明local6自定义保存至ssh.log
第三步打开ssh的配置文件
把日志保存到自定义的地址
第四部重启
第五步打开另外一台终端进行访问
第六步这时另一个终端就有消息了
第二个实验:
配置一个日志服务器,来进行日志收集。
tes1 192.168.233.10 日志收集服务器
tes2 192.168.233.20 20上面产生的日志,都会发到10上面,20自己不在记录日志。
@@192.168.233.10
@@表示使用tcp协议进行数据传输
@表示使用udp协议进行传输
LISTEN:监听,端口是否开启。端口是否正常传输数据
ESTABLISHED:表示端口之间已经建立连接而且正在传输数据
第一步进入系统配置文件
把地址改为发送的地址
把注释关闭打开传输的端口
最后把另外一台的传输端口也打开就完成了
总结:文件系统:对文件的操作,用户是针对文件名,系统针对的inode号。系统都是用inode号来进行识别。
inode号保存的是元讯息 权限 大小 时间戳
block 块:文件的最小存储单位。连续的8个扇区,4k
创建文件:保存元信息,保存实际数据。
备份和恢复 xfs ext3
日志:
error :报错
info:一般信息