Linux文件系统与日志!
1、inode 和 block 概述
文件储存在硬盘上,硬盘的最小储存单位叫“扇区”(sector),每个扇区储存 512 字节。
操作系统读取硬盘的时候,不会一个个扇区的读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个“块”(block)。
这种由多个扇区组成的“块”,是文件存取的最小单位。“块”的大小,最常见的是 4KB,即连续八个 sector 组成一个 block。
文件数据存储在“块”中,那么还必须找到一个地方存储文件的元信息,比如文件的创建者、文件的创建时间,文件的大小等等。
这种储存文件元信息的区域叫做 inode,中文译名为“索引节点”,也叫 i 节点。
一个文件必须占用一个 inode,但至少占用一个 block。
2、inode 包含文件的元信息
(1)inode 内容:
文件的字节数、拥有者的 UID、GID、文件的读写执行权限、时间戳等,但不包含文件名。文件名是储存在目录的目录项中
(2)Atime 、Mtime 、Ctime 详解:
英文 别称 中文翻译 何时修改 查看命令
Access Atime 访问时间 读取、写入 ls -lu
Modify Mtime 修改时间 写入、修改 ls -l
Change/Create Ctime 改变时间/创建时间 修改文件名、写入、修改、改权限、做链接 ls -lc
3、目录文件的结构
(1)目录也是一种文件
(2)目录文件的结构:
文件名 1 inode 号码 1
文件名 2 inode 号码 2
…… ……
每个 inode 都有一个号码,操作系统用 inode 号码来识别不同的文件
Linux 系统内部不使用文件名,而使用 inode 号码来识别文件。对于系统来说,文件名只是 inode 号码便于识别的别称。
4、inode 的号码
(1)系统内部打开文件的步骤:
1>系统找到这个文件名对应的 inode 号码
2>通过 inode 号码,获取 inode 信息
3>根据 inode 信息,找到文件数据所在的 block,读出数据
inode 一般为 128 字节或 256 字节,每个 inode 中都记录着文件所在的 block 号,每条记录着 block 号的信息占用 4 字节。
inode 中关于 block 号的记录一共包含有 12 个直接、1 个间接、1 个双间接和 1 个三间接。
间接指的是,inode 中所记录这 4 字节的内容,所指向一个 block,这个 block 中存放的不是真是的文件内容,而是真实文件所存放位置的 block 号信息,
若每个 block大小为 4KB,那么可以存放 1024 个 block 号信息,1 个间接可以存放的文件大小为:1024*4=4096KB
双间接则可以存放更大的文件内容,即在间接的基础上再进行间接,若此时 block大小为默认的 4KB,则 1 个双间接可以存放的文件内容大小为:1024*1024*4=4096MB
三间接即在双间接的基础上在进行间接,若此时 block 大小为默认的 4KB,则 1 个三间接可以存放的文件内容大小为:1024*1024*1024*4=4096GB
5、删除指定 inode 号所对应的文件
(1)格式:find ./ -inum inode 号 -exec rm -i {} \;
(2)当文件名中包含特殊符号时我们可以删除其 inode 号达到删除文件的目的
8、解决 inode 耗尽导致的磁盘故障
方法:
- 删除不使用的文件
- 将文件备份,重新格式化此文件系统,指定较多的 inode 个数
9、硬链接(hard link)
(1)方法:ln 源文件 目标文件
(2)特点:
硬链接指向 inode,新生成的硬链接文件的 inode 号与源文件的 inode 号相同,不可针对目录进行硬链接,必须在同一文件系统内。删除一个文件名,不影响另外一个的访问。
10、软链接(soft link)
(1)方法:ln -s 源文件或目录 目标文件或目录
(2)特点:
软链接指向文件名,新生成的软链接文件的 inode 号与源文件不同,目录也可以生成软链接,软链接文件与源文件可以不在同一文件系统内,软链接文件的内容是源文件的路径,
读取时系统会自动导向源文件,但当源文件移动或重命名时,软链接将报错。
11、硬链接与软链接的对比
硬链接 软链接
指向 inode 号 文件名
inode 号是否相同 相同 不同
是否可以针对目录 不可针对目录 可以针对目录
可否跨文件系统 不可跨文件系统 可跨文件系统
删除、重命名、移动源文件 不受影响 失效
创建命令 ln 源文件 目标文件 ln -s 源文件或目录 目标文件或目录
12、日志文件的作用
日志文件是用于记录 Linux 系统中各种运行信息的文件,相当于 Linux 主机的“日记”。不同的日志文件记载了不同类型的信息,如 Linux 内核消息、用户登录事件、程序错误等。
日志文件对于诊断和解决系统中的问题很有帮助,因为在 Linux 系统中运行的程序通常会把系统消息和错误消息写入相应的日志文件,这样系统一旦出现问题就会“有据可查”。
此外,当主机遭受攻击时,日志文件还可以帮助寻找攻击者留下的痕迹
13、日志文件的分类
(1)内核及系统日志:
在 6 以上的系统版本中,这种日志数据由系统服务 rsyslog 同一管理,根据其主配置文件/etc/rsyslog.conf 中的设置决定将内核消息及各种系统程序消息记录到什么位置。
/etc/rsyslog.conf 配置文件中,常见的配置格式及其含义:
- “.”:比后面等级要高(包含该等级)的都记录。例如:“*.info”
- “.=”:只记录该等级。例如:“.=debug”
- “!”:除了该等级都记录。例如:“!info”
- “-”:当有记录信息需要记录时,先存到缓存中,到一定大小时一次性写入,以减少对磁盘读写性能的占用。例如:“-/var/log/maillog”
(2)用户日志:
用于记录 Linux 系统用户登录及退出系统的相关信息,包括用户名、登录的终端、登录
时间、来源主机、正在使用的进程操作等。
(3)程序日志:
有些应用程序会选择由自己独立管理一份日志文件,而不是交给 rsyslog 服务管理,用于记录本程序运行过程中的各种事件信息。
14、日志文件的位置
Linux 系统本身和大部分服务器程序的日志文件默认放在/var/log/下。一部分程序共用一个日志文件,一部分程序使用单个日志文件。
而有些大型服务器程序日志由于日志文件不止一个,所以会在/var/log/目录中建立相应的子目录来存放日志文件,这样既保证了日志文件目录的结构清晰,又可以快速定位日志文件
15、常见的日志文件及查看方式
日志文件 存放内容 查看命令
/var/log/messages 内核消息及各种应用程序的公共日志信息,包括启动、I/O 错误、网络错误、程序故障等 cat 等
/var/log/cron crond 周期性计划任务产生的时间信息 cat 等
/var/log/dmesg 引导过程中的各种时间信息 cat 等
/var/log/maillog 进入或发出系统的电子邮件活动 cat 等
/var/log/lastlog 每个用户最近的登录事件 last、lastlog
/var/log/secure 用户认证相关的安全时间信息 cat 等
/var/log/wtmp 每个用户登录、注销及系统启动和停机事件 users、who、w
/var/log/btmp 失败的、错误的登录尝试及验证事件 lastb
16、日志消息的级别
在 Linux 内核中,根据日志消息的重要程度不同,将其分为不同的有限级别(数字等级越小,优先级越高,消息越重要)
级别 英文表示及翻译 意义
0 EMERG(紧急) 会导致主机系统不可用的情况
1 ALERT(警告) 必须马上采取措施解决的问题
2 CRIT(严重) 比较严重的情况
3 ERR(错误) 运行出现错误
4 WARNING(提醒) 可能影响系统功能,需要提醒用户的重要事件
5 NOTICE(注意) 不会影响正常功能,但是需要注意的事件
6 INFO(信息) 一般信息
7 DEBUG(调试) 程序或系统调试信息等
8 none(没有) 不做记录
17、日志文件分析注意事项:
总的来说,作为一名合格的系统管理人员,应该提高警惕,随时注意各种可疑的状况,定期并随机的检查各种系统日志文件,包括一般信息日志、网络连接日志、文件传输日志及
用户登录日志记录等。在检查这些日志时,要注意是否有不合常理的时间或操作记录。例如出现以下一些现象就应该多加注意:
- 用户在非常规的时间登录,或者用户登录系统的 IP 地址和以往不一样的
- 用户登录失败的日志记录,尤其是那些一再连续尝试进入失败的日志记录
- 非法使用或不正当使用超级用户权限
- 无故或者非法重新启动各项网络服务的记录
- 不正常的日志记录,如日志残缺不全,或者是诸如 wtmp 这样的日志文件无故缺少了中间的记录文件
Linux文件系统与日志!的更多相关文章
- Linux文件系统与日志分析
Linux文件系统与日志分析一.inode与block概述① 文件数据包括元信息(类似文件属性)与实际数据② 文件存储在硬盘上,硬盘最小存储单位是"扇区"(sector),每个扇区 ...
- Linux文件系统与日志分析的了解
Linux文件系统与日志分析 1.inode和block概述 2.模拟inode耗尽实验 3.ext类型文件恢复 4.xfs类型文件恢复 5.日志文件 6.日志分析 1.文件:文件是存储在硬盘上的,硬 ...
- linux文件系统和日志分析
一.Linux文件系统 1.inode与block 1.概述: (1)文件数据包括元信息与实际信息 (2)文件存储在硬盘上,硬盘最小存储单位是"扇区",每个扇区存储512字节 (3 ...
- 深入理解Linux文件系统与日志文件
目录: 一.inode与block 二.inode内容 三.inode的号码 四.inode的大小 五.链接文件 六.inode节点耗尽故障处理 七.恢复EXT类型的文件编译安装extundelete ...
- 深入理解Linux文件系统与日志分析
一.inode和bolck概述 二.链接文件 三.inode节点耗尽故障处理 四.EXT类型文件恢复 五.xfs文件备份和恢复 六.日志文件 一.inode和bolck概述 1.定义 文件数据 文件数 ...
- Linux文件系统与日志文件
目录 一.inode和block 1.1.inode和block概述 1.2.inode的内容 inode包含文件的元信息: 查看inode号两种方式 目录文件的结构 1.3.inode的号码 用户通 ...
- Linux文件系统与日志
1.inode 包含文件的元信息(1)inode 内容:文件的字节数.拥有者的 UID.GID.文件的读写执行权限.时间戳等,但不包含文件名.文件名是储存在目录的目录项中.(2)查看文件的 inode ...
- Linux 系统管理——Linux文件系统与日志
1.inode 包含文件的元信息(1)inode 内容:文件的字节数.拥有者的 UID.GID.文件的读写执行权限.时间戳等,但不包含文件名.文件名是储存在目录的目录项中.(2)查看文件的 inode ...
- 第十二章Linux文件系统与日志
1.inode 包含文件的元信息(1)inode 内容:文件的字节数.拥有者的 UID.GID.文件的读写执行权限.时间戳等,但不包含文件名.文件名是储存在目录的目录项中.(2)查看文件的 inode ...
随机推荐
- 【vue】axios + cookie + 跳转登录方法
axios 部分: import axios from 'axios' import cookie from './cookie.js' // import constVal from './cons ...
- 解决com.netflix.zuul.FilterProcessor : null异常
ZuulFilter过滤器的filterType方法返回一个字符串代表过滤器的类型,如果return null就会出现以上错误. 在zuul中有以下四种不同生命周期的过滤器类型 pre:路由之前 ro ...
- c#逐行读取文件到数组
/// <summary> /// 逐行读取文件到泛型数组 /// </summary> /// <param name="FilePath"> ...
- 密码学笔记——Rot13
Rot13:将每个在字母表上的字母,用后数13个后的字母代替,若超过时则重新绕回26字母开头即可. eg:A换成N.B换成O.依此类推到M换成Z,然后序列反转:N换成A.O换成B.最后Z换成M 1.密 ...
- Java进阶学习(4)之继承与多态(上)
继承 媒体资料库的设计 代码复制是质量不良的表现 不具有可扩展性和可维护性 继承 子类父类关系 子类继承了什么 先定义初始化,后构造器 子类和父类的关系 子类有变量和父类变量相同时,父类变量隐藏 父类 ...
- flask 2 进阶
# 创建项目 jinja2 语法基础 # pycharm 里面 创建 new project -->pure python 之后选择路径 选择解释器 以及虚拟环境问题 from flask im ...
- P&R 5
Floorplan: 要做好floorplan需要掌握哪些知识跟技能? 通常,遇到floorplan问题,大致的debug步骤跟方法有哪些? 如何衡量floorplan的QA? 芯片的整体架构模块划分 ...
- Laravel 解决在ajax 请求下不能保存session的问题
Laravel 解决在ajax 请求下不能保存session的问题 \Session::put('isLogin',true); // 你要保存的session key \Session::put(' ...
- The Preliminary Contest for ICPC Asia Xuzhou 2019 J Random Access Iterator (树形DP)
每次循环向下寻找孩子时,随机选取一个孩子,设dp[u]为从u出发,不能得出正确答案的概率,则从u出发,走一次的情况下不能得出正确答案的概率是 P = (dp[v1]+dp[v2]+dp[v3]+--d ...
- eclipse好用的快捷键
eclipse一些增加工作效率的快捷键(部分自己添加) eclipse如何修改快捷键 1. shift + enter | ctrl + shift + enter 在下/上方增加空行 2. ctrl ...