Linux文件系統(深刻剖析原理)

本次博客將帶領各位深刻剖析Linux文件系統、熟悉Linux系統中常見的日誌文件、瞭解通常故障的分析與解決辦法。


文章目錄:

  • inode與block詳解
  • 硬連接與軟連接
  • 恢復誤刪文件——最重要
  • 日誌文件

1、inode與block詳解

一個完整的文件一般都是由元信息和實際數據組成,其中元信息包含了文件權限以及許多文件屬性(屬組、屬主。。。。。。),而實際數據就是咱們平常寫入的信息。系統會把這兩個分別存放在inode和block中。
Linux文件系統(深刻剖析原理)node

查詢某個文件的inode信息——stat命令

[root@localhost ~]# stat install.log

這裏的「install.log」可替換爲任意文件。
Linux文件系統(深刻剖析原理)
經過上面的示意圖,能夠看出一個對於一個文件來講至關重要的一點,那就是三個時間屬性:安全

最近訪問ctime(change time):最後一次改變文件或屬性的時間(例如執行了chmod等命令)
最近更改atime(access time):最後一次訪問文件或者目錄的時間
最近改動mtime(modify time):最後一次修改文件或目錄內容的時間ide

查看某個文件的類型——file命令

[root@localhost ~]# file /etc/profile

這裏的「/etc/profile」可替換爲任意文件。
Linux文件系統(深刻剖析原理)工具

inode的內容

通常來講,不管是微軟仍是Linux系統咱們都是經過文件名來查找文件,但在系統內部倒是使用inode碼來識別不一樣的文件,對於系統來講文件名只是indode號碼便於識別的別稱。
表面上,用戶經過文件名來打開文件,實際上,在系統內部中這個過程分爲三步:
Linux文件系統(深刻剖析原理)ui

查看文件對應的inode號碼

ls -i命令3d

[root@localhost ~]# ls -i install.log

Linux文件系統(深刻剖析原理)
stat命令代理

[root@localhost ~]# stat install.log

Linux文件系統(深刻剖析原理)

某個磁盤中inode的容量

使用df -i命令來查看每一個硬盤inode總數和已使用數量調試

[root@localhost ~]# df -i /dev/sda1

Linux文件系統(深刻剖析原理)

inode號碼的特殊做用

因爲inode號與文件名分離,因此會出現一些在Linux系統特有的現象:rest

文件名中包含特殊字符,沒法經過「rm」命令刪除。這時候就能夠經過直接刪除inode號碼來達到直接刪除的文件的做用。日誌

直接刪除文件相關inode號可使用:

[root@localhost ~]# find ./* -inum 50331717 -delete

其中「50331717」爲文件的inode號碼。
Linux文件系統(深刻剖析原理)

2、硬連接與軟連接

硬連接與軟連接這二者都是Linux系統中的連接方式,不過二者有所不一樣:

硬連接:經過Linux文件系統的inode連接來生成新的文件名
軟連接:相似微軟系統的快捷方式,可以進行快速的連接

一、硬連接

使用ln命令建立,具體格式:

ln 源文件 目標名

執行該命令時,會在當前目錄下生成一個同inode號但文件名不一樣的文件:

[root@localhost mnt]# ln aaa.txt test.txt

由於硬連接只能在同一目錄下建立,因此這裏可使用相對路徑。執行結束後能夠看見硬連接與源文件名稱不一樣,但inode號碼徹底同樣。這時候即便刪除源文件,後創建的硬連接依舊可以打開文件。
Linux文件系統(深刻剖析原理)

二、軟連接

使用「ln -s」命令建立,具體格式爲:

ln -s 源文件名 目標名稱

執行該命令時,會生成一個獨立文件,指向源文件(inode不一樣):

[root@localhost mnt]# ln -s aaa.txt test.txt

由於軟連接能夠在不一樣一目錄下建立,因此這裏若是要跨目錄建立需用絕對路徑。執行結束後能夠看見軟連接就相似於快捷方式,至關於一個全新的文件,源文件被刪除,軟連接隨即不可用。
Linux文件系統(深刻剖析原理)

3、恢復誤刪文件(重要!!)

在平常工做中,常常會由於種種緣由而致使文件數據丟失(就是誤刪~~)。不要擔憂,這裏就教給各位在XFS格式中誤刪恢復的方法。

一、檢查恢復用的工具

所謂工欲善其事必先利其器,沒有如下的兩個工具,數據恢復只不過是空談

xfsdump軟件包
xfsrestore軟件包

使用rpm命令在已經安裝的rpm包中對其進行篩選。若是沒有則須要經過yum庫進行安裝。

[root@localhost ~]# rpm -qa | grep xfsdump
[root@localhost ~]# rpm -ql xfsdump | grep xfsrestore

Linux文件系統(深刻剖析原理)

二、對磁盤文件系統進行備份

將目標磁盤使用xfsdump工具進行備份,格式:

xfsdump -f 備份存放位置 要備份的文件或設備

這裏咱們將目標磁盤sdb1裏的全部文件備份到/opt/data_dump中;

[root@localhost data]# xfsdump -f /opt/data_dump /dev/sdb1

回車進行交互界面後,前後輸入備份地址以及備份文件或設備名稱。
Linux文件系統(深刻剖析原理)
Linux文件系統(深刻剖析原理)

三、模擬誤刪環境

新手將磁盤內文件所有刪除

[root@localhost ~]# rm -rf /data/*

Linux文件系統(深刻剖析原理)

四、開始恢復做業

在保證不會有新的文件寫入的狀況下(重要!!!)

使用xfsrestore命令,將備份的磁盤數據進行恢復

[root@localhost data]# xfsrestore -f /opt/data_dump /data/

其中,「/opt/data」爲備份文件的位置,「/data」爲存放恢復後文件的位置。
Linux文件系統(深刻剖析原理)
Linux文件系統(深刻剖析原理)
可是,使用xfsdump工具進行備份也有很大的限制:

  1. 只能備份已掛載的文件系統
  2. 必須使用root的權限才能操做
  3. 只能備份XFS文件系統
  4. 備份後的數據只能讓xfsrestore解析
  5. 不能備份兩個具備相同UUID的文件系統

4、日誌文件

日誌文件概述

功能:

用於記錄系統、程序運行中發生的事件
經過日誌,有助於診斷和解決系統故障

分類:

內核及系統日誌(系統裝好自帶):
由系統服務syslog統一管理,格式基本相同
用戶日誌:
記錄系統用戶登陸及退出系統的相關信息
程序日誌
由各類應用獨立管理,記錄格式不統一

經常使用日誌文件存放位置

默認路徑:

/var/log目錄下

其它主要日誌文件的存放地點:
Linux文件系統(深刻剖析原理)

日誌消息級別

日誌消息從低到高,從輕微到嚴重分爲0~7,總共8個級別

0 EMERG (緊急):會致使主機系統不可用的狀況
1 ALERT  (警告):必須立刻採起措施解決的問題
2 CRIT    (嚴重):比較嚴重的狀況
3 ERR     (錯誤):運行出現錯誤
4 WARNING(提醒):可能會影響系統功能的事件
5 NOTICE  (注意):不會影響系統但值得注意
6 INFO    (信息):通常信息
7 DEBUG   (調試):程序或系統調試信息等

其中,
0~3爲嚴重,必須採起措施不然會致使出現嚴重業務問題;
4~7爲輕微,不處理也不會出現大的業務問題。

日誌記錄格式

Linux文件系統(深刻剖析原理)

用戶日誌與程序日誌

一、用戶日誌
保存了用戶登陸、退出系統等相關操做

/var/log/lastlog:最近的用戶登陸事件,
/var/log/wtmp:用戶登陸、註銷及系統開、關機事件
/var/run/utmp:當前登陸的每一個用戶的詳細信息
/var/log/secure:與用戶驗證相關的安全性事件

二、程序日誌
由相應服務的應用程序獨立管理

Web服務:/var/log/httpd/access_log(error_log) 代理服務:/var/log/squid/access.log(cache.log)FTP服務:/var/log/xferlog

相關文章
相關標籤/搜索