一、Linux文件体系
1、 inode 与 block
- 文件数据包括元信息与实践信息;
- 文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节。
- 一个文件有必要占用一个inode, 而且至少占用一个block
1.1 block:(块)的概念
- 接连的八个扇区组成一个block(4k);
- 是文件存取的最小单位
- 操作体系读取硬盘的时分,是一次性接连读取多个扇区,即一个块一个块的读取
1.2 inode:(索引节点)的概念
- 存储文件元信息( 比如文件的创立者、创立日期、文件巨细、文件权限等)的区域就叫做inode
- 中文译名为“索引节点”,也叫i节点;
- 用于存储文件元信息
- inode不包括文件名。文件名是存放在目录当中的
1.3 inode和block的联系
- Linux 体系中一切皆文件,因此目录也是一种文件
- 每个inode都有一个号码,操作体系用inode号码来辨认不同的文件。Linux 体系内部不运用文件名,而运用inode号码来辨认文件。关于体系来说,文件名仅仅inode号码便于辨认的别称,文件名和inode号码是一 一对应联系, 每个inode号码对应一个文件名
- 当用户在Linux体系中试图拜访一个文件时,体系会先依据文件名去查找它对应的inode号码;经过inode号码, 获取inode信息;依据inode信息,看该用户是否具有拜访这个文件的权限; 如果有,就指向相对应的数据block,并读取数据
1.4 检查文件名对应的inode号码的方式
检查文件名对应的inode号码: ls -i 文件名
检查文件信息中的inode号码: stat 文件名
1.4.1 实例操作
1.5 inode包括文件的元信息(见上图中stat 123展示的信息)
- 文件的字节数
- 文件具有者的User ID
- 文件的Group ID
- 文件的读、写、履行权限
- 文件的时刻戳等
1.6 Linux体系文件三个首要的时刻特点
- ctime(change time):最终一次改动文件或目录(特点)的时刻
- atime(access time):最终一次拜访文件或目录的时刻
- mtime(modify time):最终一次修正文件或目录(内容)的时刻
1.7.用户经过文件名翻开文件时,体系内部的进程
- 体系找到这个文件名对应的inode号码
- 经过inode号码, 获取inode信息
- 依据inode信息,找到文件数据所在的block,读出数据
1.8 硬盘分区后的结构
1.9 拜访文件的简略流程
1.10.inode的巨细
- inode也会耗费硬盘空间:每个inode的巨细一般是128字节或许256字节;
- 格局化文件体系时确认inode的总数;
- 运用
df -i
指令能够检查每个硬盘分区的inode总数和现已运用的数量
1.11 inode特点
因为inode 号码与文件名分离,导致Linux体系具备以下几种特有的现象:
- 文件名包括特别字符,或许无法正常删去。这时直接删去inode,能够起到删去文件的效果;
- 移动文件或重命名文件,仅仅改动文件名,不影响inode 号,但是仿制的话,会生成一个新的inode号
- 翻开一个文件今后,体系就以inode号码来辨认这个文件,不再考虑文件名。
- 文件数据被修正保存后,会生成一个新的inode 号码
1.11.1 删去inode号的方法:
find ./ -inum 68791300 -exec rm -i {} \;
find ./ inum 68791300 -delete
find . /-inum 68791300 | xargs rm -rf
find指令详解
find pathname -option [-print ] [ -exec | -ok command ] {} ;
find指令的参数;
pathname: find指令所查找的目录路径。例如用.来表明当时目录,用/来表明体系根目录。
-print: find指令将匹配的文件输出到规范输出。
-exec: find指令对匹配的文件履行该参数所给出的shell指令。相应指令的方式为command { } ;,留意{ }和\;之间的空格。
-ok: 和-exec的效果相同,只不过以一种更为安全的模式来履行该参数所给出的shell指令,在履行每一个指令之前,都会给出提示,让用户来确认是否履行。
xargs 指令
用处:
结构参数列表并运转指令,即将接纳的参数传递给后边的command 指令履行
将多行输入转换为单行 (特别功效)
优点:
将输入参数收拾后,去除换行符,以一个列表方式处理
避免参数过长引发的问题,运用xargs -n 参数适当操控,关于常常产生很多输出的指令如find、locate和grep来说十分有用
xargs 一般是和管道一起运用:
XXcomand | xargs -x comand initial-args
echo "/etc/inittab" | cat # 直接将规范输入的内容传递给cat
echo "/etc/inittab" | xargs cat # 将规范输入的内容经过xargs处理后传递给cat
find /etc -maxdepth 1 -name "*.conf" -print0 | xargs -0 -i grep "hostname" -l {} # 将搜索的文件传递给grep的参数位进行搜索,若不运用xargs,则grep将报错
1.11.2 实例操作
1.11.2.1 移动、仿制或许重命名文件,看inode号是否有改动(只有仿制文件时inode号会发生改动)
1.11.2.2 修正文件,看inode号是否会改动(修正之后inode号会改动)
2、硬链接和软链接
- 为文件或目录建立链接文件
2.1 链接文件的分类和比照
操作和范围 | 软链接 | 硬链接 |
---|---|---|
删去原始文件后 | 失效 | 仍然可用 |
运用范围 | 适用于文件或目录 | 只可用于文件 |
保存方位 | 与原始文件能够位于不同的文件体系中 | 有必要与原始文件在同一个文件体系(如一个Linux分区)内 |
2.2 软硬链接的格局
硬链接
ln 源文件 方针方位
软链接
ln [-s] 源文件或许目录... 链接文件或许方针方位
3.inode节点耗尽毛病处理
inode也会耗费硬盘空间,当inode的空间耗费完今后,即使硬盘还有空间,也无法运用
3.1 操作过程格局
3.1 操作过程格局
#运用fdisk创立分区/dev/sdb1,分区巨细10M即可
fdisk /dev/ sdb .
mkfs.ext4 /dev/ sdb1 #也能够用xfs类型,但是在做实验室创立inode号的时分要比inode总数多创立100多个,或许是计算问题,这儿主张用ext4或许ext3便利实验
mkdir /data
mount /dev/sdb1 /data
df -i
#模仿inode节点耗尽毛病
for ( (i=1; i<=2549; i++) )
>do
>touch /test/ file$i
>done<br><br>或许直接touch {1. . 2549} . txt
df -i
df -hT
#删去文件康复
rm -rf /data/ *
df -i
df -hT
3.2 实例操作
3.2.1 新增磁盘并分区
3.2.2 格局化并挂载
3.2.3 运用for循环,创立文件,将inode空间占满(模仿inode节点耗尽毛病)
3.2.4 删去文件康复
二、康复误删去的文件(EXT类型)
extundelete是一个 开源的Linux数据康复东西, 支撑ext3、 ext4文件体系。 (ext4只能在centos6版 本康复)
1、编译装置extundelete软件包
✔ 装置依靠包
◆e2fsprogs-libs-1. 41.12-18.el6.x86_ 64.rpm
◆e2fsprogs-devel-1 .41.12-18.el6.x86_ _64.rpm
✔ 装备、编译及装置
◆extundelete-0.2.4.tar.bz2
#运用fdisk创立分区/dev/sdc1,格局化ext3文件体系
fdisk /dev/sdb
partprobe /dev/sdb
mkfs.ext3 /dev/ sdb1
mkdir /data
mount /dev/sdb1 /data
df -hT
#装置依靠包
yum -y install e2fsprogs-devel e2 fsprogs-libs
#编译装置extundelete
cd /opt
wget http: //nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2
tar jxvf extundelete-0.2.4.tar.bz2
cd extundelete-0.2.4/
./configure --prefix=/usr/ local/jz/ && make && make install
ln -s /usr/ local/jz/bin/* /usr/bin/
2、模仿删去并履行康复操作
cd /data
echo 111 > 123.txt
echo 222 > 234.txt
echo 333 > 456.txt
ls
extundelete /dev/sdb1 --inode 2
#检查文件体系/dev/sdc1下存在哪些文件,i节点是从2开端的,2代表该文件体系最开端的目录
rm-rf 123.txt 234.txt 456.txt
extundelete /dev/sdd1 -- inode 2
cd ~
umount /data/
extundelete /dev/sdb1 --restore-all
#康复/dev/sdc1文件体系下的一切内容
#在当时目录下会出现一-个RECOVERED_ FILES/目录,里边保存了现已康复的文件
ls RECOVERED_FILES/</code>
3.实例操作
3.1 增加一块20G的硬盘,并进行分区
3.2 对分区进行格局化并进行挂载
3.3 装置两个依靠包
3.4 extundelete的装置包的传输以及解压
3.5 编译装置
3.6 在挂载目录下创立文件以及内容,并检查
3.7 删去新建文件,并进行检查是否已删去(模仿毛病)
3.8 解除挂载并康复文件
三、日志文件
1、 日志的功能
• 用于记载体系、程序运转中发生的各种事情
• 经过阅览日志,有助于确诊和解决体系毛病
2、 日志文件的分类
2.1 内核及体系日志
◆由体系服务rsyslog一致进行办理 ,日志格局根本相似
◆主装备文件/etc/rsyslog.conf
2.2 用户日志.
◆记载体系用户登录及退出体系的相关信息
2.3 程序日志
◆由各种应用程序独立办理的日志文件,记载格局不一致
(由开发人员界说)
3、 日志保存方位
默许位于: /var/log目录下
4、 首要日志文件介绍
4.1 内核及公共音讯日志
✔ /var/log/messages
记载Linux内核音讯及各种应用程序的公共日志信息,包括发动、Io过错、网络过错、程序毛病等
关于未运用独立日志文件的应用程序或服务,一般都能够从该日志文件中取得相关的事情记载信息
4.2 计划任务日志
✔ /var/log/cron
记载crond计划任务产生的事情信息
4.3 体系引导日志
✔ /var/log/dmesg
记载Linux体系在引导进程中的各种事情信息
4.4 邮件体系日志
✔ /var/log/maillog
记载进入或宣布体系的电子邮件活动
4.5 用户登录日志
✔ /var /log/lastlog
记载每个用户最近的登录事情,二进制格局
✔ /var/log/secure
记载用户认证相关的安全事情信息
✔ /var/log/wtmp
记载每个用户登录、注销及体系发动和停机事情,二进制格局
✔ /var/run/btmp
记载失利的、过错的登录测验及验证事情,二进制格局
5、日志装备文件和日志音讯等级
5.1 日志装备文件
vim /etc/rsyslog.conf #检查rsyslog.conf装备文件
* . info;mail.none;authpriv.none;cron.none /var/log/messages
*.info #表明info等级及以上的一切等级的信息都写到对应的日志文件里
mail.none #表明某事情的信息不写到日志文件里(这儿比如是邮件)
5.2 Linux体系内核日志音讯的优先等级(数字等级越小,优先级越高,音讯越重要):
等级 | 音讯 | 等级 | 详细描绘 |
---|---|---|---|
0 | EMERG | 紧迫 | 会导致主机体系不可用的状况 |
1 | ALERT | 正告 | 有必要立刻采取措施解决的问题 |
2 | CRIT | 严峻 | 比较严峻的状况 |
3 | ERR | 过错 | 运转出现过错 |
4 | WARNING | 提示 | 或许影响体系功能,需求提示用户的重要事情 |
5 | NOTICE | 留意 | 不会影响正常功能,但是需求留意的事情 |
6 | INFO | 信息 | 一般信息 |
7 | DEBUG | 调试 | 程序或体系调试信息等 |
6.剖析东西
- users、who、 W、last、 lastb
- last指令用于查询成功登录到体系的用户记载
- lastb指令用于查询登录失利的用户记载
7 程序日志剖析:由相应的应用程序独立进行办理
Web服务:/var/log/httpd/
- access_log ——记载客户拜访事情
- error_log ——记载过错事情
署理服务:/var/log/squid/
- access.log、cache.log
剖析东西
- 文本检查、grep过来检索、Webmin办理套件中检查
- awk、sed等文本过滤、格局化修改东西
- Webalizer、Awstats等专用日志剖析东西
8.日志办理战略
及时做好备份和归档
延伸日志保存期限
操控日志拜访权限
- 日志中或许会包括各类敏感信息,如账户和口令等
会集办理日志
- 将服务器的日志文件发到一致-的日志文件服务器
- 便于日志信息的统- -收集、 收拾和剖析
- 根绝日志信息的意外丢失、歹意篡改或删去