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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下软链接和硬链接的区别相关的知识,希望对你有一定的参考价值。

2) 1) 如何创建:
a)默认不带参数情况下,ln命令创建的是硬链接,带-s参数的ln命令创建的是软链接。
2) 含义:
a)硬链接文件与源文件的inode节点号相同,而软链接文件相当于windows下面的快捷方式(inode节点号与源文件不同)
3) 特点:
a)不能对目录创建硬链接,但可以创建软链接,对目录的软链接会经常被用到
b)软链接可以跨文件系统,硬链接不可以跨文件系统。

4) 怎么没的(源文件,软链接,硬链接与删除)
a)除软链接文件,对源文件及硬链接文件无任何影响;
b)除文件的硬链接文件,对源文件及软链接文件无任何影响;
c)除链接文件的源文件,对硬链接文件无影响,会导致其软链接失效(红底白字闪烁状);
d)时删除源文件及其硬链接文件,整个文件才会被"真正"的删除。

文件删除原理

1)删除这个文件所有相关的硬链接-rm---删除厕所所有的入口
2)这个文件的进程调用数也为0 ------没有人在使用厕所

1.硬链接数量为0
2.进程调用数为0

某个文件没有被彻底删除,导致的磁盘空间满了。

模拟思路
向/var/log/secure 追加8亿行
seq 800000000

[[email protected] oldboy]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       8.8G  8.8G     0 100% /
tmpfs           1.9G     0  1.9G   0% /dev/shm
/dev/sda1       190M   40M  141M  22% /boot
/dev/sdc         73K   14K   55K  21% /app/logs

正常的排错过程。

[[email protected] oldboy]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       8.8G  8.8G     0 100% /
tmpfs           1.9G     0  1.9G   0% /dev/shm
/dev/sda1       190M   40M  141M  22% /boot
/dev/sdc         73K   14K   55K  21% /app/logs

[[email protected] oldboy]# du -sh /* | grep G
du: cannot access `/proc/2904/task/2904/fd/4‘: No such file or directory
du: cannot access `/proc/2904/task/2904/fdinfo/4‘: No such file or directory
du: cannot access `/proc/2904/fd/4‘: No such file or directory
du: cannot access `/proc/2904/fdinfo/4‘: No such file or directory
1.1G    /usr
7.4G    /var
[[email protected] oldboy]# du -sh /var/* | grep G
7.3G    /var/log
[[email protected] oldboy]# du -sh /var/log/* |grep G
7.3G    /var/log/secure
[[email protected] oldboy]# 
m -f /var/log/secure

磁盘空间满了

[[email protected] oldboy]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       8.8G  8.8G     0 100% /
tmpfs           1.9G     0  1.9G   0% /dev/shm
/dev/sda1       190M   40M  141M  22% /boot
/dev/sdc         73K   14K   55K  21% /app/logs
[[email protected] oldboy]# du -sh /* |grep G
du: cannot access `/proc/2914/task/2914/fd/4‘: No such file or directory
du: cannot access `/proc/2914/task/2914/fdinfo/4‘: No such file or directory
du: cannot access `/proc/2914/fd/4‘: No such file or directory
du: cannot access `/proc/2914/fdinfo/4‘: No such file or directory
1.1G    /usr

系统中某个文件没有被彻底删除。
如何找出硬链接数量为0,进程调用数不为0

[[email protected] oldboy]# lsof |grep delete
rsyslogd  1250      root    2w      REG                8,3 7803924480     130420 /var/log/secure (deleted)
软件名称                                                   文件大小              文件名    

(deleted)---标记 这个文件的硬链接数量为0,进程调用数不为0。

##重启对应的服务

[[email protected] oldboy]# /etc/init.d/rsyslog restart 
Shutting down system logger:                               [  OK  ]
Starting system logger:                                    [  OK  ]
[[email protected] oldboy]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       8.8G  1.6G  6.9G  19% /
tmpfs           1.9G     0  1.9G   0% /dev/shm
/dev/sda1       190M   40M  141M  22% /boot
/dev/sdc         73K   14K   55K  21% /app/logs

磁盘空间不足-no space left on device 原因总结
1.block满了正常-500G 存放505G视频
2.inode满了,大量的小文件
3.block 硬链接数量为0 进程调用数不为零 文件没有被彻底删除磁盘空间不足

以上是关于linux下软链接和硬链接的区别的主要内容,如果未能解决你的问题,请参考以下文章

Linux下软链接和硬链接的区别

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

描述Linux下软链接和硬链接的区别(计时2分钟)

Linux下软连接(link)和硬链接(hard)的区别

linux的软链接和硬连接的区别

Linux下软链接与硬链接的区别