inode与block
block
理解inode,要从文件储存说起。
文件储存在硬盘上,硬盘的最小存储单位叫做”扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)。
操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个”块”(block)。这种由多个扇区组成的”块”,是文件存取的最小单位。”块”的大小,最常见的是4KB,即连续八个 sector组成一个 block。
文件存储时 文件名 和文件数据是分开存储的, 文件名存储在文件目录当中
文件数据分为元信息和实际数据,实际数据存储在block也就是块当中,而元信息存储在inodo号当中
inode
inode包含文件的元信息,具体来说有以下内容:
-
文件的字节数
-
文件拥有者的User ID
-
文件的Group ID
-
文件的读、写、执行权限
-
文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。
-
链接数,即有多少文件名指向这个inode
-
文件数据block的位置
我们可以使用 ls -i文件名或者 stat文件名 ##查看文件inode号
stat指令还可以看到文件的三个时间:
atime 最近的文件访问时间
mtime 最近的文件内容修改时间
ctime 最近的文件属性修改时间
每个文件系统(分区)中inode数量是有限的 ,可通过df -i 查看
使用linux的时候,我们经常遇到rm命令删除不了文件的情况,此时我们可以使用inode号删除:
find 目录 -inum inode号 -delete
移动或修改文件名,都不会改变inode。 但使用vi编辑器对文件进行修改,会改变inode号,因为vi编辑器会替换源文件
用户打开一个文件的过程:
用户根据文件名查到对应inode号 , 根据 inode号找到inode信息, 根据inode信息 ,如有读取信息,如没有拒绝访问。
ext 类型文件恢复实验
第一步:下载extundelete工具 ,并软连接到/usr/bin
首先安装依赖包,之后编译安装extundelete
wget nchc.dl.sourceforge.net/project/ext…
第二步:删除并执行会恢复操作
cd / 1
echo a>a
echo a>b
extundelete /dev/sdb1 --inode 2 ##查看分区下的文件以及inode
删除:rm -rf a b
切换到家目录:cd~
解挂:umount /test
extundelete /dev/sdb1 --restore-all ##恢复分区下所有内容
此时我们发现家目录中出现了一个RECOVERED_FILES目录,里面就有被恢复的文件
XFS类型文件备份与恢复
我们使用xfsdump 备份 ,xfsrestore工具进行备份
xfs必须使用root权限操作,备份后的数据只能让xfsrestore解析
xfsdump -f 备份存放路径 源备份文件路径
选项: -f:指定备份文件
-L:指定标签
-M:指定设备标签
-s:备份单个文件 (不可使用路径)
实验:
rpm -qa | grep xfsdump
yum install -y xfsdump
xfsdump -f /opt/dump_sdb1 /dev/sdb1 【-L dump_sdb1 -M sdb1】
模拟删除:
使用xfsrestore恢复
日志
日志文件的作用
日志文件用于记录linux系统的各种运行信息的文件,相当于linux主机的日记,不同的日志文件记载了不同类型的信息,如Linux内核消息、用户登录事件、程序错误等。. 日志文件对于诊断和解决问题很有帮助,因为linux运行的程序通常把系统的消息和错误写入对应的日志文件,这样系统可以有据可查, 此外,当主机遭受攻击时,日志文件还可以帮助寻找攻击者留下的痕迹。
inux系统日志的三种类型
第一种:内核及系统日志
这种日志数据由系统服务rsyslog统一管理,根据其主配置文件/etc/rsyslog.conf中的设置决定将内核消息及各种系统程序消息记录到什么位置。系统中有相当一部分程序会把日志文件交由rsyslog管理,因而这些程序使用的日志记录也具有相似的格式。
第二种:用户日志
这种日志数据用于记录Linux操作系统用户登录以及退出系统的相关信息,包括用户名、登录的终端、登录时间、来源主机、正在使用的进程操作等。
第三种:程序日志
有些应用程序会选择由自己独立管理一份日志文件,用于记录本程序运行过程中的各种事件信息,而不是交给rsyslog服务管理。由于这些程序只负责管理自己的日志文件,因此不同程序所使用的日志记录格式可能会存在较大的差异。
常见的日志文件及查看方式
日志文件 存放内容
/var/log/message 内核消息及各种应用程序的公共日志信息,包括启动、I/O错误、 网络错误、
/var/log/cron Crond周期性计划任务产生的时间信息
/var/log/dmesg 弓|导过程中的各种时间信息
/var/log/ maillog 进入或发出系统的电子邮件活动
/var/log/lastlog 每个用户最近的登录事件
/var/log/secure 用户认证相关的安全事件信息
/var/log/wtmp 每个用户登录注销及系统启动和停机事件
/var/log/btmp 失败的、错误的登录尝试及验证事件
日志文件消息级别
0 EMERG:紧急 导致主机系统不可用的情况
1 ALERT:警告 必须马上采取解决措施
2 CRIT 严重 比较严重的情况
3 ERR 错误 运行出现错误
4 WARNING 提醒 提醒用户的重要事件
5 NOTICE 注意 不会儿影响系统,提醒用户
6 INFO 信息 一般信息
7 DEBUG 调式 程序调式
8 None 没有 不做记录
日志收集 :服务器数量少rsyslog shell/python 服务器多: ELK