Linux文件系统与日志分析
文件是存储在硬盘上的,硬盘上最小存储单位是扇区,每个扇区大小512字节。
**inode(索引):**元信息(包括文件属性(权限、创建者、创建日期等等))
block(块):连续的八个扇区组成一个块,一个块的大小是4K,创建一个文件最小也要占用4K(空的也要占用)。块是文件的最小存储单位
操作系统读取硬盘,是一次性读取多个扇区,一个块一个块的读取数据
**创建文件:**第一个实际空间大小要占,第二个就是元信息。(硬盘保留的信息)
元信息: inode 128字节或者256字节
一个文件的创建必须要占用一个inode(只要创建文件必须有一个inode号)
至少占用一个block(空文件,也要占一个块)
时间戳
atime:读取文件就会更新这个时间
**mtime:**修改文件数据,更改文件属性,都会更新这个时间
ctime:修改权限也会更新这个时间。
inode号:Linux都是识别文件的inode号
inode号包含信息:1、文件在硬盘中的位置
** 2、保存文件相关的属性,获取权限
3、修改了文件内容,硬盘中的位置发生变化,inode号也会发生变化
inode号多少是怎么来的? 磁盘大小。磁盘越大inode号越多,越小磁盘越少
总结inode号:
inode号和文件名分离,二者只是映射关系,Linux系统的特有现象:
1、文件名包含特殊字符,rm可能无法正常删除,可以直接删除inode号
2、移动文件,重命名,inode号不改变
3、一旦开始对文件操作,后续所有的认证和识别都是通过inode号来的,不在考虑文件名
4、元信息发生改变,inode也会发生改变。
实验
1、etx4
2(作业)、xfs 如果inode号满了,ext4和xfs有什么区别?看看能不能写入?能写入的话能写入多少? 10240 10368
xfs inode号用完之后 可以继续创建文件(可创建128个) 文件可以继续写入
xfs文件系统,如何能够实现备份和恢复?(必会)
centos7 默认使用的文件系统是xfs
xfsdump 备份
xfsrestore 恢复
xfsdump命令选项:
-f 指定需要备份的硬盘分区
-L 指定标签
-M 指定设备标签
-s 备份单个文件,-s 不能直接跟路径
xfsdump使用限制:
1、只能备份xfs文件系统
2、只能备份已经挂载的文件系统
3、只有root权限才可以进行备份操作
4、备份之后的数据要恢复,只能使用xfsrestore解析恢复
5、如果两个设备的uuid相同,不能备份(uuid(blkid查看设备uid)相同这种情况几乎不可能出现)
**面试:**备份之后恢复文件的inode号是否会发生变化?可能不会改变,大概率会改变
[root@localhost opt]# xfsdump -f /opt/backup /dev/sdb2 [-L backup -M sdb2] #备份
/opt/backup 必须是个文件,一定为空文件,不能是目录
/dev/sdb2 设备
[-L 文件标签 (备份文件的标签) ]
[ -M 设备标签 (要备份的硬盘分区)]
备份级别:全量备份和增量备份
0 默认级别 默认全量备份
1-9 是增量备份(一般不要)
[root@localhost opt]# xfsrestore -f /opt/backup /data1/ /data1/必须是已存在目录,必须自己手动创建
前一个是备份的文件
后一个是恢复到指定目录。
ext4只能在centos6
ext3 格式
extundelet
文件存储小结
日志分析
系统的日志分析类型以及日志如何分析?
Linux系统本身的日志和大部分的服务程序的日志都在 /var/log/ 目录下
(一定要会看)/var/log/messages 系统日志位置 记录了Linux的内核消息,各种应用程序的公共日志消息。
应用程序公共日志:开 关 重启 网络错误 ,程序故障都属于公共日志
访问日志
rsyslog 系统服务日志管理与程序分开
/var/log/cron :记录定时任务的日志
/var/log/dmesg:记录引导过程的日志信息
/var/log/maillog: 记录进入或者发出的系统的电子邮件
/var/log/secure :用户认证的相关信息
Linux的日志级别:
特定:数字越小,优先级越高,消息越重要
none 没优先级,不记录任何消息
日志级别怎么定义:
*.info : 表示系统当中的设备或者程序。info:包含info以及info级别以上的日志。
auth 用户认证产生的日志
daemon 守护后台进程的日志
authpriv:SSH(远程连接),FTP(文件传输 22端口)登录验证的信息
news:网络传输产生的消息
syslog:系统相关日志
kern:系统的内核日志
user:用户进程日志
local0–local7:自定义程序的日志。
uucp:unix-to-unix copy 两个Linux之间的通信
mail.info/var/log/mail.l0g:记录邮件的信息,包含info和info以上的,记录到/vaf/log/mail.log
mail.=info /var/log/mail.log/mail.log 只记录日志级别为info的
mail.!info /var/log/mail.log/mail.log 除了info的不记录,其他的全记录
mail.info,news.info 记录mail news 包含info级别及其以上的日志都记录
May 31 13:46:02 test1 systemd: Starting The Apache HTTp Server…
表示当前日志发生的时间
test1 表示发生的主机名
systemd: 子系统,哪个系统产生了这个日志
Starting The Apache HTTp Server… 干了啥(日志的具体内容)
GET 请求头部
实验:
1、ssh的日志单独列出,作为独立的日志文件
vim /etc/rsyslog.conf
[root@testl opt]# vim /etc/ssh/sshd config 32行gg
tail -f ssh.log
2、配置日志服务器,进行日志收集
test1 192.168.233.10 日志收集服务器 日志存储服务器
test2 192.168.233.20 20上面产生的日志,都会发到10上,20自己不再记录日志。
@@表示使用tcp协议传输协议 @表示使用udp协议传输
LISTEN:监听 端口是否开启,端口是否正常传输数据
ESTABLISH:端口之间已经建立连接,并且正在传输
文件系统:对文件的操作,用户是针对文件名,系统针对的inode号。系统都是ingde来进行识别。
inode号保存的是元信息 权限,大小,时间截
block 块 文件的最小存储单位,连续的8个扇区,4K
创建文件:保存元信息,保存实际数据
备份和恢复:XFS
端口是否正常传输数据
ESTABLISH:端口之间已经建立连接,并且正在传输
文件系统:对文件的操作,用户是针对文件名,系统针对的inode号。系统都是ingde来进行识别。
inode号保存的是元信息 权限,大小,时间截
block 块 文件的最小存储单位,连续的8个扇区,4K
创建文件:保存元信息,保存实际数据