linux運維、架構之路-linux文件屬性
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文件屬性