链接的概念:在linux系统中,链接可以分为两种:一种为硬链接(hard
link),另一种软链接(soft
link),我们在前面知道ln这个命令就是创建链接文件的。在默认不带参数的情况下,执行ln命令创建的链接是硬链接。
如果使用ln –s创建的是软连接
硬链接
ln 源文件 目标文件
软链接 ln
-s
源文件 目标文件(目标文件不能事先存在)
硬链接是指索引节点(inode)来进行链接,在linux中(ext2、ext3、ext4)文件系统中,保存在磁盘分区中的文件不管是什么类型都会给它分配一个编号,这个编号就被称为索引节点inode,即在系统中文件的编号。
Linux文件系统中,多个文件名同时指向同一个索引节点(inode)是正常且允许的。这种情况的文件就称为硬链接。提示:硬链接文件就相当于文件的另外一个入口。硬链接的作用之一是允许一个文件拥有多个有效路径(多个入口),这样用户就可以建立硬链接的重要文件,以防止误删源数据(很多硬件存储,如netapp存储中的快照功能就应用了这个原理),增加一个快照就多了一个硬链接。为什么一个文件建立了硬链接,就会防止误删数据呢?
因为文件系统ext2的原理是,只要文件的索引节点还有一个以上的硬链接,只删除其中的一个硬链接(仅删除了该文件的链接指向)并不影响索引节点本身和其他链接(即数据文件实体并未被删除),只有当文件的最后一个链接呗删除后,此时如果有新数据要存储到银盘上时或者系统通过类似fsck做磁盘检查的时候。被删除文件的数据块及目录的链接才会被释放,空间被新数据占用并覆盖。此时,数据再也无法找回了。也就是说,在linux系统中,删除静态文件(没有进程调用)(目录也是文件)的条件是与之相关的所有硬链接文件均被删除。
http://s13/mw690/006cnDEHzy76AIchWGgdc&690
硬链接知识小结:
1、
具有相同inode节点号的多个文件是互为硬链接文件。
2、
删除硬链接文件或者删除源文件之一,文件实体并未被删除
3、
只有删除了源文件及所有对应得链接文件,文件实体才会被删除
4、
当所有的硬链接文件及源文件被删除之后,在存放新数据会占用这个文件的空间,或者磁盘检查的时候,删除的数据将被系同回收。
5、
硬链接文件就是文件的另一个入口(相当于超市的前门后门一样)
6、
可以通过给文件设置硬链接问价,来防止重要文件被删除
7、
通过执行命令“ln
源文件 硬链接文件”即可创建硬链接
8、
硬链接文件可以用rm命令删除
9、
对于静态文件(没有进程调用的文件来讲,当对应硬链接数为0)文件就被删除
例子:
1、
我们先创建一个目录,在这个目录下创建一个文件,并追加内容
#mkdir /test/yankefei
#cd /test/yankefei
#touch yanfile
#echo “I am yankefei
linux” >>yanfile
#cat yanfile
创建硬链接文件
ln
yanfile
yanfile_hard_link
那么如果有三个链接文件,自己只知道两个,怎么找另一个呢?
因为他们有共同的inode所以第一步先查知道的文件inode是多少
ls
-lhi
查到inode 是131424
然后从根查找 find / -type
f|xargs ls -lhi|grep
131424
一个新硬盘插到电脑里如何挂载?
#fdisk -l 查看新盘
格式化 #mkfs -t ext4 /dev/sdb
挂载#mount -t
ext4 -o defaults /dev/sdb
/app/log
#df –h
#df -i
Web服务器磁盘满故障深入解析http://oldboy.blog.51cto.com/2561410/612351
du
-sh /*
查看目录的大小
当磁盘block满了,将日志删了后,容量还没有下降,东西删完了空间还在涨,平滑重启服务/etc/init.d/httpd
reload
查看删除了的东西 lsof
|grep deleted
软链接(soft link)
软链接(soft
link)也称为符号链接,就和windows的快捷方式差不多
源文件
软链接文件
ln –s
yankefei
yankefei_soft_link
软连接和源问价不是一个文件,当源文件没有的时候,软链接就失效了,闪红。
误区:创建软链接源文件是需要存在的,要创建的软链接文件是不能存在的,要用ln命令创建
软链接知识小结:
1、
软链接类似windows的快捷方式(可以通过readlink查看指向)。
2、
软链接类似一个文本文件,里面存放的是源文件的路径,指向源文件实体
3、
删除源文件,软链接文件依然存在,但是无法访问指向的源文件路径内容了
4、
失效的时候一般是白字红底闪烁提示。
5、
执行命令ln –s
源文件 软链接文件
,即可完成创建软链接(目标不能存在)
6、
软链接和源文件是不同类型的文件,也是不同的文件。Inode
也不同
7、
删除软链接文件可以用rm命令
目录软连接和文件软链接基本差不多,软链接在工作中特别常用
http://s1/mw690/006cnDEHzy76AJfaXZKe0&690
小结:
通过上面的测试可以看出:当删除原始文件yankefei后,其硬链接文件yankefei_hard_link不受影响,对应的数据依然还存在,但是其对应的软链接文件yankefei_soft_link失效了,找不到源文件了,此时可以删除软链接文件重新创建,或者创建一个yankefei_hard_link的硬链接文件yankefei
链接文件的总结:
全局结论:删除软连接文件对源文件及硬链接文件无任何影响。
删除硬链接文件对源文件及软链接无任何影响
删除源文件,对硬链接文件没有影响,但是会导致软连接失效,白字红底闪烁。
很多硬件设备中的快照功能,就是利用硬链接的原理
源文件和硬链接文件具有相同的索引节点号,可以认为是同一个文件或者一个文件的多个入口
源文件和软链接文件索引节点号不同,是不同的文件,软链接相当于源文件的快捷方式,含有源文件位置指向。
有关目录软连接小结
对于目录不能创建硬链接,但可以创建软链接
对于目录的软连接是生产场景常用的技巧(例如appche、nginx)
目录的硬链接不能跨越文件系统
每个目录里面都有一个硬链接.号,和对应上级目录的硬链接..
在父目录创建一个子目录,父目录的连接数增加1(子目录里都有..来指向父目录)
面试题:请描述软链接和硬链接的区别?
思路:介绍软硬链接的概念
对于文件的软硬链接区别
对于目录的软硬链接区别
软链接生产使用案例
在后面我们变异apache软件时,编译路径带着版本号
/application/apache2.2.21(为了区分版本用,因此路径比较长)而访问目录
时又希望简便,此时就可以建立一个简单的软连接路径文件
ln –s
/application/apache2.2.21
/application/apache,来达到方便访问
目的
企业生产目录软链接作用
1、
编译软件时指定版本号(/application/apache2.2.23)访问时希望去
掉版本号(/application/appache),当软件升级高版本后,只需删除链接文件重建到高版版本路径的软链接即可。
2、
企业代码发布时(PHP程序),需要把所有代码传到一个新的临时目录或者新的站点目录。发布时要么一个mv,也可以重建软连接指向到这个新的临时目录或者新的站点目录。
3、
不方便目录移动,就使用ln -s
http://s1/mw690/006cnDEHzy76AJ2wYmse0&690
加载中,请稍候......