1 硬链接概念
硬链接是指通过索引节点(Inode)来进行链接,在Linux(ext2,ext3)文件系统中,保存在磁盘分区中的文件不管是什么类型都会给它分配一个编号,这个编号被称为索引节点编号(Inode Index)简称Inode,即在系统中文件的编号。
在Linux文件系统中,多个文件名指向同一个索引节点(Inode)是正常且允许的。这种情况的文件就称为硬链接,硬链接的作用之一是允许一个文件拥有多个有效路径名(多个入口),这样用户就可以建立硬链接到重要的文件,以防止“误删”源数据(很多硬件存储如netapp存储中的快照功能就应用了这个原理,增加一个快照就多了一个硬链接。)为什么一个文件建立了硬链接会防止误删呢?
因为文件系统(ext2)的原理是,只要文件的索引节点还有一个及一个以上的链接。只删除其中一个硬链接,并不影响索引节点本身和其它的链接,只有当文件的最后一个链接被删除后,此时如果有新数据要存储到硬盘上时或都系统通过以fsck做磁盘检查的时候,被删除文件的数据块及目录的链接都会被释放,空间被新数据占用并覆盖。此时,数据就再也无法找回了,也就是说,在linux系统中,删除文件(目录也是文件)的条件是与之相关的所有硬链接均被删除;
提示:硬链接相当于文件的另外一个入口
2 查看硬链接数
此图下面标红的显示为硬链接数,表示已有几个硬链接数;
注:目录不可创建硬链接
创建一个硬链接,查看变化。
创建的硬链接文件,他们的Inode节点是相同的。
3 软链接
软件链接相当于windos的快捷方式
Linux里的软链接文件是一个特殊的文件。在软链接中,软链接文件实际上就是一个文本文件,这个文件中包含有软链接指向另一源文件文件的位置信息内容,因此,通过访问这个“快捷方式”就可以迅速定位到软链接所指向的源文件实体。
创建的软链接,他们的inode节点不相同。
4 小结:
4.1 硬链接小结:
1)通过ls –li参数查看硬链接数
2)同一个文件可以同时有多个硬链接,但只对文件生效,硬链接不能用于目录。
3)同一个文件的多个硬链接文件inode节点相同
4)删除一个文件的一个硬链接文件,不会影响其他硬链接文件;只有删除所有硬链接文件和源文件,数据才会被删除。
5)当所有的硬链接文件和源文件都被删除后,再存放新的数据会占用这个文件的空间,或者磁盘fsck检查的时候,数据也会被回收。
6)硬链接是一个文件的多个入口。
7)和复制不一样的是,硬链接的文件指向的都是同一个源文件,所以在任何硬链接文件做更改,直接会影响到每一个硬链接文件中。相当于时时同步。
8)目录不支持创建硬链接
4.2 软链接小结:
1)软链接相当于windos的快捷方式
2)软链接和源文件的inode值不同
3)可以在不同分区对文件或目录进行创建软链接
4)通过readlink命令查看软链接文件对应的实质源文件
5)删除软链接源文件对软链接会直接影响
6)软链接和源文件是不同类型的文件,也是不同的文件。
7)虽然目录不能创建硬链接,但通过ls查看属性时还可以看到显示硬链接数的那一行并非为1,而是大于1的数;原因在于,每创建一个目录时,其自动给自己创建一硬链接(可查看隐藏文件),并且在目录下每创建一个子目录,都会使硬链接数加1(创建文件不增加)。
这个只在目录下创建子目录才有效,如果在子目录下创建子目录就无效(原理是子目录下通过ls –al查看到有“..”对应上一目录的硬链接)
5 Linux系统文件删除及还原原理:
1. 一个文件有两部分组成,分别为i_link和i_count。
2. i_link为硬链接数;i_count为调用文件进程数
3. 当i_link为0时(即删除所有硬链接和源文件),且没被其他进程调用,此文件就被删除。
4. 当i_link为0时,但被其他进程调用时,说明i_count不为0,则文件可还原。
所以文件是否真的被删除,看i_link和i_count两个计数器决定。
5.1 Web服务器磁盘满故障案例分析:
参考资料:http://oldboy.blog.51cto.com/2561410/612351
5.2 案例:模拟Web服务器磁盘满故障环境
1)yum安装httpd
[root@baiguin ~]# yum -y install httpd
2)更改httpd.conf配置文件访问日志路径
[root@baiguin ~]# sed -i "s@#CustomLog /app/log/access_log combined@CustomLog /app/log/access_log combined@" /etc/httpd/conf/httpd.conf
3)创建模拟磁盘
[root@baiguin ~]# dd if=/dev/zero of=/dev/sdc bs=8K count=10
记录了10+0 的读入
记录了10+0 的写出
81920字节(82 kB)已复制,0.000898885 秒,91.1 MB/秒
[root@baiguin ~]# ll /dev/sdc
-rw-r--r-- 1 root root 81920 9月 24 16:02 /dev/sdc
[root@baiguin ~]# mkfs.ext3 /dev/sdc
4)挂载查看
[root@baiguin ~]# mount /dev/sdc /app/log/
mount: /dev/sdc is not a block device (maybe try `-o loop'?)
[root@baiguin ~]# mount -o loop /dev/sdc /app/log/
[root@baiguin ~]# df -h
/dev/sda1 485M 76M 384M 17% /boot
/dev/sdc 73K 14K 55K 21% /app/log
5)启动http并查看
[root@baiguin ~]# /etc/init.d/httpd start
[root@baiguin ~]# ll /app/log/
-rw-r--r-- 1 root root 4524 9月 24 16:11 access_log
drwx------ 2 root root 12288 9月 24 16:04 lost+found
6)多次打开网页,让磁盘占满,并删除日志文件,查看磁盘是否还占满。
删除后发现磁盘未减小
7)通过lsof | grep del 查看文件被占用情况
8)重启httpd服务释放正在写入的日志并查看
生产场景:最佳解决方案
1)删除文件,重启服务。
2)清空文件里的内容,无需重启服务。
3)不要删除当天的被进程占用的文件,删以前的。
6 文件时间类型
6.1 GNU/Linux的文件有3种类型的时间戳:
可通过stat 命令查看文件的三种时间
6.2 通过ls命令各参数分别查看文件时间戳
1) 通过默认的ls (ls -lt)显示的是最后修改时间
2) 通过ls –lc 显示的是状态改变时间
3) 通过ls –lu 显示的是最后访问时间
6.3 改变时间戳的几种情况
1)Touch一个已经存在的文件时会使该文件的三个时间戳都改变
2)查看文件时会改变文件的访问时间(以及其他的一些对文件属性的修改,都会便时间戳有相应的变动)
6.4 通过ls两种方法显示文件时间长格式
1)通过ls 的 –time-style=long-iso命令
[root@baiguin ~]# ls -l --time-style=long-iso wang.txt
-rw-r--r-- 1 root root 46 2014-09-25 10:43 wang.txt
2)通过ls –time-style=full-iso命令
[root@baiguin ~]# ls -l --time-style=full-iso wang.txt
-rw-r--r-- 1 root root 46 2014-09-25 10:43:13.081973883 +0800 wang.txt
linux系统文件属性的更多相关文章
-
linux系统文件属性及企业精典故障案例
linux系统文件属性: [root@nginx_back ~]# stat keepalived-1.2.7.tar.gz 查看文件属性 File: "keepalived-1.2.7.t ...
-
linux系统文件属性-硬连接、软连接
1 硬链接概念 硬链接是指通过索引节点(Inode)来进行链接,在Linux(ext2,ext3)文件系统中,保存在磁盘分区中的文件不管是什么类型都会给它分配一个编号,这个编号被称为索引节点编号(In ...
-
八.linux系统文件属性知识
1.文件属性权限是12位,现在只看9位,其中每3个一组,为:属主权限.属组权限.其他权限,其中r可读,w可写,x可执行,如图: 2.文件属性之软硬链接 linux系统中有两种链接,为硬链接(ln) ...
-
Linux系统文件属性知识
---------------------------------------------------------------------------------------------------- ...
-
linux系统文件属性详解
一.文件信息 当创建一个文件的时候,系统保存了有关该文件的全部信息,包括: 文件的位置: 文件类型: 文件长度: 哪位用户拥有该文件,哪些用户可以访问该文件: 硬连接计数: 文件的修改时间: 文件的权 ...
-
第四篇、linux系统文件属性三
一.linux文件属性之文件权限体系介绍 二.linux中连接介绍 三.软连接 四.图解 五文件删除原理 主要内容
-
Linux系统学习 九、日志、命令、身份鉴别、目录、文件查看、控制台终端、文件属性
一.配置静态IP地址 输入ifconfig后没有配置IP地址,接下来进行手动配置. 输入以下命令进入IP配置文件进行配置 原始内容 进入vi后,输入i进入编辑状态,编辑完成后,按esc键退出编辑状 ...
-
linux文件管理 ->; 系统文件属性
-rw-------. 1 root root 4434 May 30 13:58 ks.cfg -rw-------. ①:文件类型与权限 ②:硬链接次数 root ③:所属用户 root ④:所属 ...
-
linux系统下的权限知识梳理
下面对linux系统下的有关权限操作命令进行了梳理总结,并配合简单实例进行说明.linux中除了常见的读(r).写(w).执行(x)权限以外,还有其他的一些特殊或隐藏权限,熟练掌握这些权限知识的使用, ...
随机推荐
-
人工智能与3A
我在Tid2014上的一个小视频: 下一代的码农会是什么样的呢?且听咕咚老王的“3A”畅谈——“Ai.Art.Any”. 在艺术的视角下,世界是沉寂的.美丽的: 在码农的眼中,世界是有“码”的朦胧美吗 ...
-
javascript confirm()函数的用法
javascript confirm()函数的用法 confirm():确认消息对话框.用于允许用户做选择的动作.弹出的对话框中包含一确定按钮和一取消按钮. confirm(str) 参数说明: st ...
-
Windows上安装Yeoman
之前直接安装完Node.js后,运行npm install -g yo命令,结果出现什么"要安装framework2.0 sdk,vcbuild"什么的错误,怎么也弄不好,结果是各 ...
-
浙工大C语言入门指南 (仅供参考)
C语言书籍推荐 浙工大图书馆中,计算机的书都集中在三楼TP区.我个人推荐下面这么几本书. <Head First C>.Head First系列的书质量基本都很高.该书有很多插图,总体上就 ...
-
(转)Ubuntu中让终端对于历史输出的内容保持足够长
原地址:http://www.crifan.com/ubuntu_terminal_make_retain_long_enough_history_output_content/ Ubuntu下用终端 ...
-
[源码]解析 SynchronousQueue 上界,下界.. 数据保存和数据传递. 堵塞队列. 有无频繁await?
简析SynchronousQueue.LinkedBlockingQueue(两个locker,更快),ArrayBlockingQueue(一个locker,读写都竞争) 三者都是bloc ...
-
Python(day1)
一.Python的属于解释型语言. 编译型:一次性,将全部的程序编译成二进制文件,然后再运行. 优点:运行速度快. 缺点:开发效率低,不能跨平台. 解释型:当你的程序运行时,一行一行的解释,并运行. ...
-
酷痞运行于openwrt路由系统
欢迎你进入酷痞的物联网世界.这里有着*的空气和自然的气息.接下来我将告诉你如果一步步建立一个自己专属的物联网平台. 酷痞官网地址:http://icoolpy.com 由于openwrt系统复杂 ...
-
admin源码解析以及仿照admin设计stark组件
---恢复内容开始--- admin源码解析 一 启动:每个APP下的apps.py文件中. 首先执行每个APP下的admin.py 文件. def autodiscover(): autodisco ...
-
sql预计简单分页
在显示记录条目时往往要用到分页,一种常用的办法是利用各种数据库自带的定位接口对原始查询语句进行改写,从而只取出特定范围的某些记录.不同的数据库,查询定位接口是不一样的,下面做一汇总: 数据库 分页查询 ...