Liunx文件系统与日志分析
名词解析:
扇区(512字节):sector,硬盘存储数据的最小存储单元
block块(连续八个扇区):用户存取文件的最小单元;大小是4KB(最常见的一种分配方法)
索引节点(inode):存储文件的元信息(文件存储信息,文件类型、大小、权限等等),至少占用一个block(哪怕是一个空文件,也必须有一个inode和一个block)
inode索引节点,在初始化磁盘分区时,会先定义好所有的inode,初始化文件时,会自动分配inode编码给对应的文件,inode实际大小为128或256字节,但一定会占据一整个扇区。读取文件时,系统会通过文件名/路径找到对应的inode编码,在通过inode编码找到对应存储的块;移动文件时,真正移动的是数据块,inode编码不变,但指向数据块的指针会发生变化
链接:
分为软链接和硬链接,软链接只存储指针,但不存储数据,一个文件有多个软链接时,对其中一个进行修改时,其他都会跟着改变,而删除源文件时,因为指针的丢失,则链接失效,而如果一个文件有多个硬链接,他们会有独立的物理存储,对其中一个进行修改时,其他的物理存储会发生改变,删除源文件,并不影响这些链接
软链接其实是inode指向了源文件的block;硬链接的inode指向了自己的block,但会同步源文件block的内容(双向同步)
安装extundelete工具:
1.安装依赖包:yum install -y e2fsprogs-devel e2fsprogs-libs
2.安装C++语言环境:yum install -y gcc gcc-c++
3.从官网下载extundelete工具包:
上传到虚拟机:tar -jxvf...
编译安装:在extundelete安装目录中执行:./configure --prefix=/usr/local/extundelete && make && make install
4.新建一个硬盘分区/dev/sda4,指定其文件系统为ext3:mafs.ext3/dev/sda4
5.挂载分区到具体目录:mount /dev/sda4/radio-5-md/
6.查看分区的inode初始化情况:/usr/local/extundelete/bin/extundelete /dev/sda4 --inode 2
查看从编号2开始的inode使用情况
7.模拟磁盘恢复
在/radio5-md 目录中创建文件/文件夹
删除文件
立即卸载磁盘分区:unmount /dev/sda4
恢复:/usr/local/extundelete/bin/extundelete /dev/sda4 --restore-all
extundelete恢复存在错误可能或造成大文件缺失数据的问题
xfs文件系统的恢复:正常采用xfsdump和xfsrestore工具进行备份恢复
基本原理为:使用xfsdump进行系统备份
如果需要恢复,则使用xfsrestore进行恢复到备份处
yum install -y xfsdump安装工具
挂载磁盘,并创建文件系统为xfs格式
xfsdump进行备份:xfsdump -f 备份目录 /dev/sda4
要想恢复:xfsrestore -f 备份目录 要恢复到的目录
PS:备份的安全策略:
1.本地备份,目的是为了避免误操作
2.本地其他磁盘备份,目的是为了避免磁盘故障
3.移动备份,或其他机器备份,目的是为了规避机器故障
4.云端备份,目的是为了规避机器集群大型故障
5.组合备份:往往用于大数据场景(或者安全性要求高的场景)。
例如:1本地+1本地机架+1其他机架+1远程+1移动
日志查看:
运维的工作很大一部分是:日常的巡检(一般分为硬件巡检和软件巡检),主要通过查看日志等操作
日志主要分三大类型:
内核及操作系统日志:/etc/rsyslog.com 进行配置,具体的配置信息在/etc/rsyslog.d/*.conf
一般主要查看/var/log/massages
用户日志:一般是开发好的服务系统用户,或者Linux操作系统用户,登录来源主机,正在使用的进程操作,登录的时间等
一般主要查看/var/log/secure
w命令
程序日志:应用程序/服务系统自己的日志,由程序定义其日志级别及所在位置
日志默认存放目录:/var/log ;一般只有root用户才有权限读取,程序日志的位置和用户都由应用程序自定义
程序日志种类很多,千差万别,但一般分为两种:第一种是.log日志(一般详细日志),第二种是.out日志,这种一般是运行输出
程序日志中需要关心的包括:
1.用户在非常规的时间,IP地址等方式登录的
2.用户登录失败的日志记录,特别是连续登录失败多次,仍不断尝试的
3.非法或不正当使用超级管理员权限
4.无故或非法处理各项网络服务
5.不正常的/不完整的日志记录
日志的一般格式:
时间标签:消息产生的具体日期和时间
主机名:发出消息的主机名称
子系统名称:发出消息的应用程序的名称
消息主体:消息的具体内容
日志可能会被入侵者删除,所有在工作中,往往会备份这部分日志数据,有时还需要实时监控这部分日志数据的变化
日志不是万能的,可以被篡改,可以被删除,可以被伪造,另外要综合其他的系统信息进行判断和检查,否则容易造成误判
日志管理的策略:
1.及时作好备份和归档
2.延长日志保存期限、拆分日志
3.控制日志访问权限
日志中可能会包含各类敏感信息,如账户、口令等
4.集中管理日志
将服务器的日志文件发到统一的日志文件服务器
便于日志信息的统一收集、整理和分析
杜绝日志信息的意外丢失、恶意篡改或删除