linux中inode详解
来源:互联网 发布:二叉树前序遍历算法 编辑:程序博客网 时间:2024/05/12 21:48
这里的Directory并不是我们通常说的目录,而是一个列表,记录了一个 (文件/目录名称) 对应的 (Inode number)。
一、inode是什么?
使用ls -i命令,可以看到文件名对应的inode号码:
ln命令可以创建硬链接:
九 实际问题
在一台配置较低的Linux服务器(内存、硬盘比较小)的/data分区内创建文件时,系统提示磁盘空间不足,用df -h命令查看了一下磁盘使用情况,发现/data分区只使用了66%,还有12G的剩余空间,按理说不会出现这种问题。 后来用df -i查看了一下/data分区的索引节点(inode),发现已经用满(IUsed=100%),导致系统无法创建新目录和文件。
查找原因:
/data/cache目录中存在数量非常多的小字节缓存文件,占用的Block不多,但是占用了大量的inode。
解决方案:
1、删除/data/cache目录中的部分文件,释放出/data分区的一部分inode。
2、用软连接将空闲分区/opt中的newcache目录连接到/data/cache,使用/opt分区的inode来缓解/data分区inode不足的问题:
ln -s /opt/newcache /data/cache
完
作者:iTech
出处:http://itech.cnblogs.com/
文件的节点号是在分区创建的时候就已经分配好了的。
复制,剪切,删除对文件inode的影响------------------这会对我们深入了解inode的分布有很大帮助:
(1)复制对文件inode的影响
[root@localhost ~]# cd /boot/
[root@localhost boot]# ls -li file
6030 -rw-r--r-- 1 root root 0 Mar
6 13:26 file
a 可以看到,这个文件的节点号是6030,现在我们将它复制到另外一个分区
[root@localhost boot]# cp file /var/
[root@localhost boot]# cd /var/
[root@localhost var]# ls -li file
2115361 -rw-r--r-- 1 root root 0 Mar
6 13:27 file
将这个文件复制到/var分区下面后,这个文件的inode number就改变了。
当一个文件从一个分区复制到另外一个分区的时候,系统就分配了另外一个inode给这个文件。
b 那么在同一个分区复制文件节点号会有什么改变呢
[root@localhost boot]# ls -li file
6030 -rw-r--r-- 1 root root 0 Mar
6 13:26 file
[root@localhost boot]# cp file /boot/grub/
[root@localhost boot]# cd grub/
[root@localhost grub]# ls -li file
22091 -rw-r--r-- 1 root root 0 Mar
6 13:29 file
可以看到,刚才这个文件的节点号是6030,现在就变成了22091了。
在同一个分区里面复制文件,这个文件的节点号也是会发生改变的。因为在这个分区有两份相同的文件,只是文件的内容相同,但是文件的inode属性却是不一样的。
2. 剪切对文件inode的影响
a 同一分区的剪切
[root@localhost ~]# cd /boot/
[root@localhost boot]# ls -li file
6030 -rw-r--r-- 1 root root 0 Mar
6 13:26 file
可以看到,这个文件的节点号是6030,现在我们将这个文件在同个分区里剪切一份。
[root@localhost boot]# mv file /boot/test/
[root@localhost test]# ls -li file
6030 -rw-r--r-- 1 root root 0 Mar
6 13:26 file
可以看到,这个文件节点号是没有改变的。
当在同一个分区里面移到文件,文件的节点号没有发生改变。
b 不同的分区剪切
[root@localhost ~]# cd /boot/test/
[root@localhost test]# ls -li file
6030 -rw-r--r-- 1 root
[root@localhost test]# mv /boot/test/file /var/ftp/pub/
[root@localhost test]# cd /var/ftp/pub/
[root@localhost pub]# ls -li file
325584 -rw-r--r-- 1 root root 0 Mar
6 13:26 file
可以看到,这个文件的节点号是肯定会变的。
3 删除对inode的影响
[root@localhost ~]# cd /boot/
[root@localhost boot]# ls -li file
6030 -rw-r--r-- 1 root root 0 Mar
6 13:44 file
[root@localhost boot]# rm -rf file
现在我们把file这个文件给删除了,其实我们只是将file这个文件的节点表给删除了,其实我们的数据都还在。这也就是为什么当我们删除一个文件,这个文件还可以被找回来的原因。当然如果我们在到这个分区里面写入数据,那么原来的数据就会被覆盖。
[root@localhost boot]# touch file1
[root@localhost boot]# ls -li file1
6030 -rw-r--r-- 1 root root 0 Mar
6 13:49 file1
现在我们又新建了一个文件file1,这个文件的节点号也是6030,它就已经覆盖了以前的数据的节点号。那么以前的数据就找不回来了。
4 总结
复制:在同一个分区,节点号改变。
在不同的分区,节点号改变。
剪切:在同一个分区,节点号不变。
在不同的分区,节点号改变。
删除:只是删除了文件的节点表,数据没有被真正删除,只有当往这个分区在写入数据的时候,才会覆盖原来的数据。
- linux中inode详解
- Linux之Inode详解
- Linux之Inode详解
- Linux inode详解
- linux inode详解
- linux中的 inode 详解
- linux inode 详解
- linux inode 详解
- linux inode 详解
- Linux--inode详解
- linux索引inode详解
- 【Linux】inode信息详解
- linux inode节点详解
- Linux之inode详解
- linux 之 inode详解
- linux 中inode简介
- Linux中inode
- linux 索引节点 inode 详解
- iOS开发中,应用内直接跳转到Appstore
- Javascript 设计模式 -- Module(模块)模式
- Javascript 设计模式 -- Revealing Module(揭示模块)模式
- 什么时候使用Looper.prepare()
- javascript中数组化的一般见解
- linux中inode详解
- eclipse 中 svn 更新 提交 同步资源库 详细解释下他们的功能
- JavaScript代码组织结构良好的5个特点[reuqire.js]
- poj 2530 Tetris Alphabet 拓扑排序
- JavaScript内部原理系列-执行上下文(Execution Context)
- Linode 安装 Ubuntu 主机记录
- Android 之采用execSQL和rawQuery方法完成数据的添删改查操作 原生的查询和执行!!
- 初涉交互设计一
- 敏捷测试,TDD&ATDD