1. 程式人生 > >linux運維、架構之路-linux文件屬性

linux運維、架構之路-linux文件屬性

增加 軟連接 ext4 源文件 linux文件屬性 屬性 sys dump 剩余空間

1、查看文件屬性 ls -lhi

技術分享

文件屬性詳細說明

1.    第一列: inode索引節點編號
2.    第二列:文件類型及權限
3.    第三列:硬鏈接數
4.    第四列:文件或目錄所屬的用戶,即文件的所有者
5.    第五列:文件或目錄所屬的組。
6.    第六列:文件或目錄的大小。
7.    第七、八、九列:文件或目錄的修改時間

2、inode小結

磁盤被分區並格式化為ext4文件系統會生成一定數量的inode和block。inode被稱為索引節點,它的作用是存放文件的屬性信息及作為文件內容的索引(指向實體block)。
一個非空文件至少要占有一個inode和一個block。inode節點號相同的文件,互為硬鏈接文件。inode在一個文件系統(分區)中是唯一的。用ls -i(查看某些文件的inode)或df -i(查看系統裏面inode剩余量)進行查看inode信息。

3、block小結

block是用來存儲實際數據的,磁盤讀取信息是以block為單位讀取的;一個文件可能占用多個block,每讀取一個block就會消耗一次磁盤I/O,一個block剩余空間會被浪費,無論內容有多小。用dumpe2fs/dev/sda3 |grep -i "block size"或者df -h查看磁盤使用量。

4、文件權限

技術分享

5、硬鏈接

ln 源文件 目標文件

軟連接: ln -s 源文件 目標文件

硬鏈接是通過執行命令“ln 源文件 目標文件”來創建完成的;在同一文件系統中,具有相同inode節點號的多個文件互為硬鏈接文件。

硬鏈接與刪除:

把源文件和硬鏈接都刪除,文件才能被徹底刪除。文件被刪除的條件之一是硬鏈接數量為0。

查看文件的硬鏈接數:ls -lhi、stat

6、軟鏈接

linux裏的軟鏈接文件實際上是一個特殊的文件,文件類型是l,可以理解為是一個文本文件,這個文件包含有軟連接指向另一源文件的位置信息。

軟鏈接是通過執行命令“ln -s 源文件 目標文件”來創建的;軟鏈接和源文件是不同類型的文件,也是不同的文件,其inode也不同。

硬鏈接文件與源文件的inode相同,軟鏈接則與源文件不同;

對於目錄不能創建硬鏈接但是可以創建軟鏈接

軟鏈接可以跨文件系統,硬鏈接不可以跨文件系統;

刪除鏈接的源文件對硬鏈接無影響,軟鏈接將無法使用;

同時刪除源文件及硬鏈接文件,整個文件才能被刪除

7、文件刪除

linux通過link數量控制文件刪除,只有當一個文件i-count和i-link都為零文件才被刪除。

i-count 當前文件被調用的數量(內存引用計數器,被進程調用時增加)

i-link 介質鏈接數量(磁盤引用計數器,創建硬鏈接時增加)

8、企業小案例

磁盤空間已滿但是與du -sh結果不一致,如何解決?

①第一個裏程碑

####已經刪除了,但是空間沒有釋放

####已經刪除了-----把文件的硬鏈接數量為0

####空間沒有釋放---還有人在使用---進程

②第二個裏程碑

# lsof |grep delete

rsyslogd 1250 root 1w REG 8,3 1888889326 274029 /var/log/messages (deleted)

#####硬鏈接數為0了,但是還有一個rsyslog軟件正在使用

###這個文件沒有被徹底刪除

③第三個裏程碑

##重啟對應的軟件/服務即可

# /etc/init.d/rsyslog restart

Shutting down system logger: [ OK ]

Starting system logger: [ OK ]

④第四個裏程碑

dh -f

1.盡量清空日誌文件不要刪除

2.切割日誌,刪除舊的文件(幾天以前的)

no space left on device(磁盤空間不足)

block滿了,df -h ----- du -sh /*---500G磁盤放入了3個300G的文件

block滿了,硬鏈接數為0(日誌文件被rm刪除),進程占用數量不為零。lsof|grep delete

inode滿了

linux運維、架構之路-linux文件屬性