文件属性软硬连接:

链接有两种,一种为硬链接(Hard Link),另一种为软链接或符号链接(Symbolic Link或Soft Link)。

建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中,并且不能建立指向目录的硬链接。而对符号链接,则不存在这个问题。默认情况下,ln产生硬链接。

在硬链接的情况下,参数中的“目标”被链接至[链接名]。如果[链接名]是一个目录名,系统将在该目录之下建立一个或多个与“目标”同名的链接文件,链接文件和被链接文件的内容完全相同。

如果给ln命令加上- s选项,则建立符号链接。如果[链接名]已经存在但不是目录,将不做链接。[链接名]可以是任何一个文件名(可包含路径),也可以是一个目录,并且允许它与“目标”不在同一个文件系统中。如果[链接名]是一个已经存在的目录,系统将在该目录下建立一个或多个与“目标”同名的文件,此新建的文件实际上是指向原“目标”的符号链接文件。

硬链接:# ln 源文件 目标文件

软连接:# ln -s 源文件 目标文件(目标文件不能已经存在,文件类型为l)

1. 硬链接(hard link) :

在Linux文件系统中,多个文件名指向同一个索引节点(inode)。这种情况文件就称为硬链接。硬链接文件就相当于文件的另外的一个入口,具有相同inode节点号的多个文件是互为硬链接文件

删除硬链接文件或者删除源文件任意之一,文件实体block并未被删除;只有删除了源文件及所有对应的硬链接文件,文件实体block才会被删除;当所有的硬链接文件及源文件被删除后,再存放新的数据会占用这个文件的空间,或者磁盘fsck检查的时候,删除的数据也会被系统回收。可以通过给文件设置硬链接文件,来防止重要文件被误删

创建硬链接文件

# ln 源文件 硬链接文件

文件彻底删除

硬链接文件是普通文件,所以可以用rm命令删除

对应静态文件(没有进程正在调用的文件)来讲,当对应硬链接数为0(i_link),文件就被删除了。

i_link的查看方法

# ls -lhi 第三列的数字就是

硬链接的限制

我们在使用硬链接的同时也需要对硬链接的限制有所了解;

1. 不能跨文件系统

2. 不能链接到目录

2.软链接(symbolic link):

软连接又叫做符号链接,它几乎可以等价于windows下的快捷方式;

软连接的创建

软连接:ln -s 源文件 目标文件(目标文件不能已经存在)

软连接知识

软连链接指向源文件实体

删除源文件(可以用rm命令删除),软连接文件依然存在,但是无法访问指向的源文件路径内容了

失效的时候一般是白字红底闪烁提示

执行命令“ln -s 源文件 软连接文件”,即可完成创建软连接(目标不能存在)

软连接和源文件是不同类型的文件,也是不同的文件,inode号也不相同

总结:

1.删除软连接,对源文件和硬链接文件都没有影响

2.删除硬链接,对源文件和软连接文件都没有影响

3.删除源文件,对硬链接没有印象,但是会导致软连接文件失效,白底红字闪烁

4.同时删除源文件和硬链接文件,整个文件才会真正的被删除

5.源文件和硬链接文件具有相同的索引节点号,可以认为是同一个文件或一个文件多个入口

6.源文件和软连接文件的索引节点号不相同,是不同的文件,软连接文件相当于源文件的快捷方式,含有源文件的位置指向

有关目录的总结:

对于目录,不可以创建硬链接,但可以创建软连接

目录的硬链接不能跨越文件系统

每个目录下面都有一个硬链接“.”号,和对应上级目录的硬链接“..”

在父目录里面创建一个子目录,父目录的链接数会增加1(每个子目录里都有“..”指向父目录),但在父目录中创建文件,父目录的链接数不会增加

硬链接数的查看

硬链接,增加链接数,删除源文件,连接仍旧有效

软链接,不增加链接数,但删除源文件,软链接失效

目录的硬链接数:当前目录的硬链接(.)+下级目录返回上级目录的硬链接(..)+本身

子目录的硬链接数:当前目录的硬链接(.)+本身

在配置apache时,执行了./configure --prefix=/application/apache2.2.17来编译apache,在make install 完成后,希望用户的访问路径更简单,需要给/application/apache2.2.17目录做一个软链接/application/apache,使得内部开发或管理人员通过/application/apache就可以访问到apache的安装目录/application/apache2.2.17下的内容,请你给出实现的命令。(提示:apache为一个httpd web服务)

思路:

软件的安装位置   /application/apache2.2.17

给开发人员使用的位置   /application/apache2.2.17

升级软件,新的软件的安装位置   /application/apache2.4.17

思考:如何给别人使用的始终是一个路径,即使更新了软件;所以,我们要做软链接,这样不论软件如何更新,通过修改软链接的指向就可以,然后软链接的路径始终不变。

1、创建软链接

# mkdir -p /application/apache2.2.17

# ll -ld /application/apache2.2.17

# ln -s /application/apache2.2.17 /application/apache

# ls -l /application/

2、软件更新了,重新创建软链接

#  mkdir -p /application/apache2.4.17

# rm -f application/apache

# ln -s /application/apache2.4.17

# ll /application/

# ln -s /application/apache2.4.17 /application/apache

# ll /application/

3、如图软链接的地址始终不变,不会影响开发人员的使用,这就是实际工作中软链接的意义

为什么目录不能创建硬链接,软链接可以正常创建

硬链接的本质其实就是有多个入口,都可以看到目标文件的内容。这些入口就是门,也就

是硬链接。硬链接其实也就相当于做备份--超市A ---超市A.bak。

软链接就相当于windows的快捷方式,这就如同超市并没有多开新的门,仍旧用的旧门,

只不过告诉你通过多条路都可以来到这个门而已。

因此,对linux来说,硬链接需要系统将目标文件做备份,删除其中的任何一个,文件内容

都不会消失,只不过是删除了其中的一份备份而已;而软链接并没有做备份,他只是多增

加了一条来到门前的通路而已。因此,假如linux允许给目录做硬链接的话,他就同时需要给目录下的所有文件在做一个硬链接,这样会导致系统不断的进行遍历,拖慢系统的运行速度。

描述linux下软链接和硬链接的区别

1,默认不带参数情况下,ln命令创建的是硬链接,带-s参数的ln命令创建的是软链接

2,硬链接文件与源文件的inode节点号相同,而软链接文件的inode节点号与源文件不同。

3,ln命令不能对目录创建硬链接,但可以创建软链接,对目录的软链接会经常被用到。

4,删除软链接文件,对源文件及硬链接文件无任何影响

5,删除文件的硬链接文件,对源文件及软链接文件无任何影响

6,删除链接文件的源文件,对硬链接文件无影响,会导致其软链接失效

7,同时删除源文件及硬链接文件,整个文件才会被真正的删除

8,软链接可以跨文件系统,硬链接不可以跨文件系统

Linux文件删除原理

Linux通过link数量控制文件删除,只有当一个文件i_count和i_nlink都为零文件才会被删除,rm删除文件改变的是i_nlink数

正在使用当中的文件,即便你删除了i_nlink(硬链接数),文件实际上也并没有被删除,因为,文件还正在处于读写状态。只有i_count的数也为零时,文件才会被彻底删除。

i_count当前文件被调用的数量(内存引用计数器,被进程调用时增加)

i_nlink截止连接数量(磁盘引用计数器,创建硬链接时增加)

再生产环境中,有时会遇到apache等类似服务,磁盘满了的情况,会要求你去删掉些日

志,如果此时你去删除了,你会发现磁盘空间占用没有改变,还是满的,而且查询不

到。

这是因为,后台进程仍旧在占用着被删掉了的日志文件,因此linux并没有将内容删

除(block),你的删除只是清除了inode和文件名而已。解决这个问题就需要重新启动

apache

较好的处理方案,清空日志而不删除日志>/app/logs/access_log

恢复误删除的文件

针对Linux下的ext文件系统,可用的恢复工具: debugfs,extundelete

extundelete的使用

(1)安装依赖包

e2fsprogs-libs-1.41.12-18.el6.x86_64.rpm

e2fsprogs-devel-1.41.12-18.el6.x86_64.rpm

(2)编译安装

# ls

# tar xf extundelet-0.2.4.tar.bz2 -C /usr/src/

# cd /usr/src/extundelete-0.2.4/

# ls

# ./configure --prefix=/usr/src/extundelete \ > && make && make install

# cp /usr/local/extundelete/bin/extundelete \ > /usr/bin/

(3)执行恢复操作

常用选项

--inode        指定从inode号为多少开始显示

--restore-file    恢复误删除的某个文件

--restore-all     恢复全部已删除的文件

--after dtime    在某个时间点之后删除的文件

--before dtime   在某个时间点之前删除的文件

date -d “日期及时间” +%s   算出某个时间点距离1970年1月1日过去了多少秒

在数据被误删后,第一时间要做的就是卸载被删除数据所在的分区,如果是根分区的数据遭到误删,第一时间要做的就是卸载被删除数据做在的分区,如果是根分区的数据遭到误删,就需要将系统进入单用户模式,并且将根分区已只读模式挂载。  原因:将文件删除后,仅是将文件的iNode节点中的扇区指针清零,世纪文件还储存在磁盘上,如果磁盘继续以读写模式挂载,这些已删除的文件的数据块就可能被操作系统重新分配出去,在这些数据库背心的数据覆盖后,这些数据就真的丢失了,恢复工具也无力回天。所以以只读模式挂载磁盘可以尽量降低数据库中数据被覆盖的风险,以提高恢复数据成功的比例。

恢复/test/passwd/文件

(模拟误删除)

# df -hT

# rm -f /test/passwd

# umount /dev/sdb1

# extundelete /dev/sdb1 --inode 2

(恢复)

# extundelete --restore-file passwd /dev/sdb1

# ls RECOVERED_FILES/

# mount /dev/sdb1 /test/

# mv RECOVERED_FILES/passwd /test/

# ls /test/

查看所有进程的文件打开数

# lsof

统计所有进程的文件打开数

# lsof | wc -l

文件打开数的默认值ulimit-n 是1024,最多为65535

临时生效(单个进程的文件打开数)

# ulimit -n 65535

# export ulimit -n 65535(全局生效)

永久生效(单个进程的文件打开量)

(1)vim编辑/etc/security/limits.conf配置文件

# vim /etc/security/limits.conf

* soft nofile 65535

* hard nofile 65535

# ulimit -a 查看open files(文件打开数)

(2)修改/etc/rc.local添加(/proc/sys/ 所有系统的优化目录)

# echo 65535 > /proc/sys/fs/file-max

手动排查文件大小

# du -sh 文件或目录

查看某个进程打开数,跟踪日志的进程

# lsof -p rsyslog

跟踪文件,查看哪些进程打开了文件(可以追踪病毒)

# lsof /var/log/messages

/proc/sys/ 所有系统的优化目录

vm 操作系统优化目录

Linux系统——硬链接与软链接的更多相关文章

  1. Linux系统硬链接和软链接介绍

    1.链接的概念 在Linux系统中链接分为硬链接和软连接两种,一种为硬链接,另一种为软连接或符号链接(symbolic Link).ln命令就是创建链接文件的,在默认不带参数的情况下,执行ln命令创建 ...

  2. 【Linux】Linux系统硬链接和软链接

    在linux系统中有种文件是链接文件,可以为解决文件的共享使用.链接的方式可以分为两种,一种是硬链接(Hard Link),另一种是软链接或者也称为符号链接(Symbolic Link). 查看lin ...

  3. Linux系统硬链接和软链接说明 - 运维笔记

    在linux系统中有种文件是链接文件,可以用来解决文件的共享使用.链接的方式可以分为两种,一种是硬链接(Hard Link),另一种是软链接或者也称为符号链接(Symbolic Link).先来查看下 ...

  4. 二、Linux系统硬链接和软链接详细介绍与实践

    链接的概念 在linux系统中,链接可分为两种:一种被称为硬链接(Hard LinK),另一种被称为软链接或符号链接(Symbolic Link).在默认不带参数的情况下,执行ln命令创建的链接是硬链 ...

  5. linux系统 硬链接和软链接

    背景: 当几个用户同在一个项目里工作时.经常须要共享文件. 假设一个共享文件同一时候出如今属于不同用户的不同文件夹下.工作起来就非常方便. 比如B和C文件夹下有一文件D是两者都能够訪问和改动的共享文件 ...

  6. 理解 Linux 的硬链接与软链接(待研究)

    从 inode 了解 Linux 文件系统 硬链接与软链接是 Linux 文件系统中的一个重要概念,其涉及文件系统中的索引节点 (index node 又称 inode),而索引节点对象是 Linux ...

  7. Linux 的硬链接与软链接

    Linux 的硬链接与软链接    http://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/    若一个 inode 号对 ...

  8. 理解Linux的硬链接与软链接-转载

    理解Linux的硬链接与软链接 来自:https://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/index.html

  9. 转:理解 Linux 的硬链接与软链接

    Linux 的文件与目录 现代操作系统为解决信息能独立于进程之外被长期存储引入了文件,文件作为进程 创建信息的逻辑单元可被多个进程并发使用.在 UNIX 系统中,操作系统为磁盘上的文本与图像.鼠标与键 ...

随机推荐

  1. 【BZOJ】1088: [SCOI2005]扫雷Mine(递推)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1088 脑残去想递推去了... 对于每一个第二列的格子,考虑多种情况,然后转移.....QAQ 空间可 ...

  2. Oracle Data Provider for .NET的使用(三)-ORACLE与.NET类型对应关系

    想来这个是最重要的事情了,因为多数情况下,我们使用dbhelper来调用数据库的时候,是因为如下三个地方导致错误: 1.错误的sql语句:末尾多了分号,少了部分关键字 2.sql中的参数与parame ...

  3. PHPExcel导出插入图片和居中问题

    首先到网上先下载PHPExcel 下载后解压得到这两个文件 下载后引用该文件 最后编写相关代码: 首先是图片插入导出 $objDrawing = new PHPExcel_Worksheet_Draw ...

  4. poj 1127:Jack Straws(判断两线段相交 + 并查集)

    Jack Straws Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 2911   Accepted: 1322 Descr ...

  5. 带清空按钮TextBox的实现(WPF)

    本博文针对人群:WPF新手.博文内容:通过Style制定包含清空Button的TextBox样式模板,通过在Style中引入自定义类的附加属性完成对TextBox的内容清空. <span sty ...

  6. Spring配置文件总结

    http://blog.csdn.net/zhejingyuan/article/details/41042789

  7. jboss6.4 域模式自动部署

    1.通过jenkins传递部署包到服务器,调用自动部署shell完成jboss6.4的域模式部署: 2.自动部署shell如下: 完成部署包重命名(从jenkins过来的包可能没有改名:). 调用jb ...

  8. 用Broadcast Receiver刷新数据

    ①注册广播事件: 注册方式有两种, 一种是静态注册,就是在AndroidManifest.xml文件中定义,注册的广播接收器必须要继承BroadcastReceiver: 另一种是动态注册,是在程序中 ...

  9. Erstudio8.0怎么用?Erstudio8.0汉化版详细使用教程

    Erstudio8.0使用教程 打开ERstudio,点击新建出现如图对话框: 选择第一个,表示创建一个新的关系型 数据库模型 这里提一点数据库模型分为relational(关系)和dimension ...

  10. pageResponse - 让H5适配移动设备全家

    http://www.cnblogs.com/PeunZhang/p/4517864.html