文件是存储在硬盘上的,硬盘最小储存叫做扇区,每个扇区512字节
操作系统读取硬盘信息,不会一个一个扇区读取,实际情况一下连续读取多个扇区,一次性读取多个扇区,叫做块(Block),这种多个扇区组成的“块”是文件存取的最小单位,最常见的4K,就是8个扇区组成的一个Block块,512字节*8=4096字节
文件数据是储存在“块中”,那还必须找一个储存文件的元信息元信息主要包括文件创建者,文件 的创建日期,文件的大小等,这种元信息的区域叫做inode节点也叫做“索引号”也叫做i节点号,一个文件必须占用一个i节点,至少一个block
文件的数据包括二部分:1.元信息(inode) 2.实际数据(block)
系统找到文件名的inode号码
通过inode号码,获取inode信息
根据inode信息,找到文件所在的block,并读取数据文件名----对应的inode号码------inode信息—找到文件所在的block,读取数据
命令–查找inode号码的方法 ls -i 查看文件名对应的inode号码ll -i 比较友好的查看inode号码stat 查看文件inode信息中inode号码 访问文件的简单流程 用户访问文件------------系统查找文件对应的inode--------判断用户是否具备访问权限 —是—指定对应的数据block用户访问文件------------系统查找文件对应的inode--------判断用户是否具备访问权限 —否—返回Permissiondenied运行该命令以后,源文件与目标文件的 inode 号码相同,都指向同一个 inode
extundelete 工具仅可以恢复 EXT 类型的文件,无法恢复 CentOS 7 系统默认采用 xfs 类型的文件。
针对 xfs 文件系统目前也没有比较成熟的文件恢复工具,所以建议提前做好数 据备份,以避免数据丢失。
xfs 类型的文件可使用 xfsdump 与 xfsrestore 工具进行备份恢复。若系统中未安装 xfsdump与xfsrestore工具
可以通过yum install -y xfsdump命令安装。xfsdump 按照inode 顺序备份一个 xfs 文件系统。xfsdump 的备份级别 有两种:0 表示完全备份;1-9 表示增量 备份。 xfsdump 的备份级别默认为 0。
xfsdump 的命令格式为:xfsdump -f 备份存放位置 要备份路径或设备文件。常用的备份参数包括以下几种:
-f:指定备份文件目录;-L:指定标签 session label;-M:指定设备标签 media label;-s:备份单个文件,-s 后面不能直接跟路径 实验过程: fdisk /dev/sdb ##进入sdb中重新配置硬盘 mkfs.xfs -f /dev/sdb1 ##格式化硬盘为xfs格式 df -Th ##查看挂载情况的 mount /dev/sdb1 /data ##挂载 cd /data touch 1 2 5 2 25 ##新建文件 yum install -y xfsdump ##下载xfsdump安装包 xfsdump -f /opt/dump_sdb1 /dev/sdb1 ##用xfsdump软件备份sdb1 ####交互信息### please enter label for this dump session (timeout in 300 sec) -> dump_sdb1 ####指定备份会话标签 please enter label for media in drive 0 (timeout in 300 sec) -> sdb1 ###指定设备标签,就是对要备份的设备做一个描述 xfsdump -I 查看备份内容信息 ####删除之前创建的内容,模拟数据丢失### cd /data/ rm -rf * ##删除data里面所有的文件 cd ~ xfsrestore -f /opt/dump_sdb1 /data/ ##恢复文件 ls /date/ ##查看date里面的文件恢复没有 使用 xfsdump 时,需要注意以下的几个限制 xfsdump 不支持没有挂载的文件系统备份,所以只能备份已挂载的;xfsdump 必须使用 root 的权限才能操作(涉及文件系统的关系);xfsdump 只能备份 XFS 文件系统;xfsdump 备份下来的数据(档案或储存媒体)只能让 xfsrestore 解析xfsdump 是透过文件系统的 UUID 来分辨各个备份档的,因此不能备份两个具有相同 UUID 的文件系统。日志文件是用于记录 Linux 操作系统中各种运行消息的文件,相当于 Linux 主机的“日 记”。不同的日志文件记载了不同类型的信息,如 Linux 内核消息、用户登录事件、程序错 误等。
日志文件对于诊断和解决系统中的问题很有帮助,因为在 Linux 操作系统中运行的程序 通常会把系统消息和错误消息写入相应的日志文件,这样系统一旦出现问题就会“有据可查”。
此外,当主机遭受攻击时,日志文件还可以帮助寻找攻击者留下的痕迹。
内核及系统日志:这种日志数据由系统服务 rsyslog 统一管理,根据其主配置文件/etc/rsyslog.conf 中的设置决定将内核消息及各种系统程序消息记录到什么位置。 系统中有相当一部分程序会把自己的日志文件交由 rsyslog 管理,因而这些程序使 用的日志记录也具有相似的格式
用户日志:这种日志数据用于记录 Linux 操作系统用户登录及退出系统的相关信息, 包括用户名、登录的终端、登录时间、来源主机、正在使用的进程操作等。
程序日志:有些应用程序会选择由自己独立管理一份日志文件(而不是交给 rsyslog 服务管理),用于记录本程序运行过程中的各种事件信息。由于这些程序只负责管 理自己的日志文件,因此不同程序所使用的日志记录格式可能会存在较大的差异。
常见的日志 1. /var/log/cron:##记录 crond 计划任务产生的事件信息 2. /var/log/dmesg:##记录 Linux 操作系统在引导过程中的各种事件信息 3. /var/log/maillog:##记录进入或发出系统的电子邮件活动。 4. /var/log/lastlog:##记录每个用户最近的登录事件。 5. /var/log/secure:##记录用户认证相关的安全事件信息 6. /var/log/wtmp:##记录每个用户登录、注销及系统启动和停机事件 7. /var/log/btmp:##记录失败的、错误的登录尝试及验证事件分析日志文 件的目的在于通过浏览日志查找关键信息、对系统服务进行调试,以及判断发生故障的原因等。
主要介绍三类日志文件的基本格式和分析方法。对于大多数文本格式的日志文件(如内核及系统日志、大多数的程序日志),只要使用 tail、more、less、cat 等文本处理工具就可以查看日志内容。而对于一些二进制格式的日志 文件(如用户日志),则需要使用特定的查询命令
内核及系统日志 内核及系统日志功能主要由默认安装的 rsyslog-7.4.7-16.el7.x86_64.rpm 软件包提供。 rsyslog 服务所使用的配置文件为/etc/rsyslog.conf。 通过查看/etc/rsyslog.conf 文件中的内 容,可以了解到系统默认的日志设置, 具体操作如下: [root@localhost ~]# grep -v “^$” /etc/rsyslog.conf ####过滤掉空行 根据日志消息的重要程度不同,将其分为不同 的优先级别(数字等级越小,优先级越高,消息越重要) 0 EMERG(紧急):会导致主机系统不可用的情况。 1 ALERT(警告):必须马上采取措施解决的问题。 2 CRIT(严重):比较严重的情况。 3 ERR(错误):运行出现错误 4 WARNING(提醒):可能影响系统功能,需要提醒用户的重要事件 5 NOTICE(注意):不会影响正常功能,但是需要注意的事件。 6 INFO(信息):一般信息。 7 DEBUG(调试):程序或系统调试信息等。 内核及大多数系统消息被记录到公共日志文件/var/log/messages 中 用户日志 查询当前登录的用户情况——users、who、w 命令 users 命令只是简单地输出当前登录的用户名称,每个显示的用户名对应一个登录会话 who 命令用于报告当前登录到系统中的每个用户的信息 查询用户登录的历史记录——last、lastb 命令 通过 last 命令可以及时掌握 Linux 主机的登录情况, lastb 命令用于查询登录失败的用户记录,如登录的用户名错误、密码不正确等情况都 将记录在案。 程序日志 在 Linux 操作系统中,还有相当一部分应用程序没有使用 rsyslog 服务来管理日志,而是由程序自己维护日志记录。 检查日志出现一下情况需要注意点 1. 用户在非常规的时间登录,或者用户登录系统的 IP 地址和以往的不一样。 2. 用户登录失败的日志记录,尤其是那些一再连续尝试进入失败的日志记录。 3. 非法使用或不正当使用超级用户权限。 4. 无故或者非法重新启动各项网络服务的记录。 5. 不正常的日志记录,如日志残缺不全,或者是诸如 wtmp 这样的日志文件无故缺少 了中间的记录文件。