linux下軟鏈接和硬鏈接的區別
阿新 • • 發佈:2019-02-26
var oldboyedu 追加 軟鏈接文件 tin ger 相關 star 鏈接 2) 1) 如何創建:
a)默認不帶參數情況下,ln命令創建的是硬鏈接,帶-s參數的ln命令創建的是軟鏈接。
2) 含義:
a)硬鏈接文件與源文件的inode節點號相同,而軟鏈接文件相當於windows下面的快捷方式(inode節點號與源文件不同)
3) 特點:
a)不能對目錄創建硬鏈接,但可以創建軟鏈接,對目錄的軟鏈接會經常被用到
b)軟鏈接可以跨文件系統,硬鏈接不可以跨文件系統。 d)時刪除源文件及其硬鏈接文件,整個文件才會被"真正"的刪除。
a)默認不帶參數情況下,ln命令創建的是硬鏈接,帶-s參數的ln命令創建的是軟鏈接。
2) 含義:
a)硬鏈接文件與源文件的inode節點號相同,而軟鏈接文件相當於windows下面的快捷方式(inode節點號與源文件不同)
3) 特點:
a)不能對目錄創建硬鏈接,但可以創建軟鏈接,對目錄的軟鏈接會經常被用到
b)軟鏈接可以跨文件系統,硬鏈接不可以跨文件系統。
4) 怎麽沒的(源文件,軟鏈接,硬鏈接與刪除)
a)除軟鏈接文件,對源文件及硬鏈接文件無任何影響;
b)除文件的硬鏈接文件,對源文件及軟鏈接文件無任何影響;
c)除鏈接文件的源文件,對硬鏈接文件無影響,會導致其軟鏈接失效(紅底白字閃爍狀);
文件刪除原理
1)刪除這個文件所有相關的硬鏈接-rm---刪除廁所所有的入口
2)這個文件的進程調用數也為0 ------沒有人在使用廁所
1.硬鏈接數量為0
2.進程調用數為0
某個文件沒有被徹底刪除,導致的磁盤空間滿了。
模擬思路
向/var/log/secure 追加8億行
seq 800000000
[root@oldboyedu01-nb 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
正常的排錯過程。
[root@oldboyedu01-nb 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 [root@oldboyedu01-nb 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 [root@oldboyedu01-nb oldboy]# du -sh /var/* | grep G 7.3G /var/log [root@oldboyedu01-nb oldboy]# du -sh /var/log/* |grep G 7.3G /var/log/secure [root@oldboyedu01-nb oldboy]# \rm -f /var/log/secure
磁盤空間滿了
[root@oldboyedu01-nb 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
[root@oldboyedu01-nb 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
[root@oldboyedu01-nb oldboy]# lsof |grep delete
rsyslogd 1250 root 2w REG 8,3 7803924480 130420 /var/log/secure (deleted)
軟件名稱 文件大小 文件名
(deleted)---標記 這個文件的硬鏈接數量為0,進程調用數不為0。
##重啟對應的服務
[root@oldboyedu01-nb oldboy]# /etc/init.d/rsyslog restart
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
[root@oldboyedu01-nb 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下軟鏈接和硬鏈接的區別