linux系統檔案屬性

來源:互聯網
上載者:User

標籤:

1  永久連結概念

永久連結是指通過索引節點(Inode)來進行連結,在Linux(ext2,ext3)檔案系統中,儲存在磁碟分割中的檔案不管是什麼類型都會給它分配一個編號,這個編號被稱為索引節點編號(Inode Index)簡稱Inode,即在系統中檔案的編號。

         在Linux檔案系統中,多個檔案名稱指向同一個索引節點(Inode)是正常且允許的。這種情況的檔案就稱為永久連結,永久連結的作用之一是允許一個檔案擁有多個有效路徑名(多個入口),這樣使用者就可以建立永久連結到重要的檔案,以防止“誤刪”來源資料(很多硬體儲存如netapp儲存中的快照功能就應用了這個原理,增加一個快照就多了一個永久連結。)為什麼一個檔案建立了永久連結會防止誤刪呢?

         因為檔案系統(ext2)的原理是,只要檔案的索引節點還有一個及一個以上的連結。只刪除其中一個永久連結,並不影響索引節點本身和其它的連結,只有當檔案的最後一個連結被刪除後,此時如果有新資料要儲存到硬碟上時或都系統通過以fsck做磁碟檢查的時候,被刪除檔案的資料區塊及目錄的連結都會被釋放,空間被新資料佔用並覆蓋。此時,資料就再也無法找回了,也就是說,在linux系統中,刪除檔案(目錄也是檔案)的條件是與之相關的所有永久連結均被刪除;

                   提示:永久連結相當於檔案的另外一個入口

2  查看永久連結數

此圖下面標紅的顯示為永久連結數,表示已有幾個永久連結數;

註:目錄不可建立永久連結

 

建立一個永久連結,查看變化。

 

建立的永久連結檔案,他們的Inode節點是相同的。

 

3  軟連結

軟體連結相當於windos的捷徑

Linux裡的軟連結檔案是一個特殊的檔案。在軟連結中,軟連結檔案實際上就是一個文字檔,這個檔案中包含有軟連結指向另一源檔案檔案的位置資訊內容,因此,通過訪問這個“捷徑”就可以迅速定位到軟連結所指向的源檔案實體。

建立的軟連結,他們的inode節點不相同。

 

 

4  小結:4.1    永久連結小結:

1)通過ls –li參數查看永久連結數

2)同一個檔案可以同時有多個永久連結,但只對檔案生效,永久連結不能用於目錄。

3)同一個檔案的多個永久連結檔案inode節點相同

4)刪除一個檔案的一個永久連結檔案,不會影響其他永久連結檔案;只有刪除所有永久連結檔案和源檔案,資料才會被刪除。

5)當所有的永久連結檔案和源檔案都被刪除後,再存放新的資料會佔用這個檔案的空間,或者磁碟fsck檢查的時候,資料也會被回收。

6)永久連結是一個檔案的多個入口。

7)和複製不一樣的是,永久連結的檔案指向的都是同一個源檔案,所以在任何永久連結檔案做更改,直接會影響到每一個永久連結檔案中。相當於時時同步

8)目錄不支援建立永久連結

4.2    軟連結小結:

1)軟連結相當於windos的捷徑

2)軟連結和源檔案的inode值不同

3)可以在不同分區對檔案或目錄進行建立軟連結

4)通過readlink命令查看軟連結檔案對應的實質源檔案

5)刪除軟連結源檔案對軟連結會直接影響

6)軟連結和源檔案是不同類型的檔案,也是不同的檔案。

7)雖然目錄不能建立永久連結,但通過ls查看屬性時還可以看到顯示永久連結數的那一行並非為1,而是大於1的數;原因在於,每建立一個目錄時,其自動給自己建立一永久連結(可查看隱藏檔案),並且在目錄下每建立一個子目錄,都會使永久連結數加1(建立檔案不增加)。

 

這個只在目錄下建立子目錄才有效,如果在子目錄下建立子目錄就無效(原理是子目錄下通過ls –al查看到有“..”對應上一目錄的永久連結)

 

 

 

5  Linux系統檔案刪除及還原原理:

1.   一個檔案有兩部分組成,分別為i_link和i_count。

2.   i_link為永久連結數;i_count為調用檔案進程數

3.   當i_link為0時(即刪除所有永久連結和源檔案),且沒被其他進程調用,此檔案就被刪除。

4.   當i_link為0時,但被其他進程調用時,說明i_count不為0,則檔案可還原。

所以檔案是否真的被刪除,看i_link和i_count兩個計數器決定。

       

5.1    Web伺服器磁碟滿故障案例分析:

參考資料:http://oldboy.blog.51cto.com/2561410/612351

5.2    案例:類比Web伺服器磁碟滿故障環境

1)yum安裝httpd

[[email protected] ~]# yum -y install httpd   

2)更改httpd.conf設定檔訪問日誌路徑

[[email protected] ~]# sed -i "[email protected]#CustomLog /app/log/access_log [email protected] /app/log/access_log [email protected]" /etc/httpd/conf/httpd.conf

3)建立類比磁碟

[[email protected] ~]# dd if=/dev/zero of=/dev/sdc bs=8K count=10

記錄了10+0 的讀入

記錄了10+0 的寫出

81920位元組(82 kB)已複製,0.000898885 秒,91.1 MB/秒

[[email protected] ~]# ll /dev/sdc

-rw-r--r-- 1 root root 81920 9月  24 16:02 /dev/sdc

[[email protected] ~]# mkfs.ext3 /dev/sdc

4)掛載查看

[[email protected] ~]# mount /dev/sdc /app/log/

mount: /dev/sdc is not a block device (maybe try `-o loop‘?)

[[email protected] ~]# mount -o loop /dev/sdc /app/log/

[[email protected] ~]# df -h

/dev/sda1             485M   76M  384M  17% /boot

/dev/sdc               73K   14K   55K  21% /app/log

5)啟動http並查看

[[email protected] ~]# /etc/init.d/httpd start

 

[[email protected] ~]# ll /app/log/

-rw-r--r-- 1 root root  4524 9月  24 16:11 access_log

drwx------ 2 root root 12288 9月  24 16:04 lost+found

6)多次開啟網頁,讓磁碟佔滿,並刪除記錄檔,查看磁碟是否還佔滿。

 

刪除後發現磁碟未減小

 

7)通過lsof  | grep del  查看檔案被佔用情況

8)重啟httpd服務釋放正在寫入的日誌並查看

 

生產情境:最佳解決方案

1)刪除檔案,重啟服務。

2)清空檔案裡的內容,無需重啟服務。

3)不要刪除當天的被進程佔用的檔案,刪以前的。

6  檔案時間類型6.1    GNU/Linux的檔案有3種類型的時間戳記:

可通過stat 命令查看檔案的三種時間

               

6.2    通過ls命令各參數分別查看檔案時間戳記

1)          通過預設的ls (ls -lt)顯示的是最後修改時間

 

2)          通過ls –lc 顯示的是狀態改變時間

 

3)          通過ls –lu 顯示的是最後訪問時間

 

6.3    改變時間戳記的幾種情況

1)Touch一個已經存在的檔案時會使該檔案的三個時間戳記都改變

               

2)查看檔案時會改變檔案的訪問時間(以及其他的一些對檔案屬性的修改,都會便時間戳記有相應的變動)

                     

6.4    通過ls兩種方法顯示檔案時間長格式

1)通過ls 的 –time-style=long-iso命令

[[email protected] ~]# ls -l --time-style=long-iso wang.txt

-rw-r--r-- 1 root root 46 2014-09-25 10:43 wang.txt

2)通過ls –time-style=full-iso命令

[[email protected] ~]# ls -l --time-style=full-iso wang.txt   

-rw-r--r-- 1 root root 46 2014-09-25 10:43:13.081973883 +0800 wang.txt

linux系統檔案屬性

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.