国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

linux系統文件屬性

2024-06-28 13:21:11
字體:
來源:轉載
供稿:網友
linux系統文件屬性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

[root@baiguin ~]# yum -y install httpd

2)更改httpd.conf配置文件訪問日志路徑

[root@baiguin ~]# sed -i "s@#CustomLog /app/log/access_log combined@CustomLog /app/log/access_log combined@" /etc/httpd/conf/httpd.conf

3)創建模擬磁盤

[root@baiguin ~]# dd if=/dev/zero of=/dev/sdc bs=8K count=10

記錄了10+0 的讀入

記錄了10+0 的寫出

81920字節(82 kB)已復制,0.000898885 秒,91.1 MB/秒

[root@baiguin ~]# ll /dev/sdc

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

[root@baiguin ~]# mkfs.ext3 /dev/sdc

4)掛載查看

[root@baiguin ~]# mount /dev/sdc /app/log/

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

[root@baiguin ~]# mount -o loop /dev/sdc /app/log/

[root@baiguin ~]# df -h

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

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

5)啟動http并查看

[root@baiguin ~]# /etc/init.d/httpd start

[root@baiguin ~]# 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命令

[root@baiguin ~]# 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命令

[root@baiguin ~]# 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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大庆市| 平湖市| 大庆市| 双峰县| 浦城县| 科技| 鸡西市| 怀安县| 云林县| 扶绥县| 镇安县| 桂阳县| 天津市| 武义县| 平远县| 萨嘎县| 鸡泽县| 繁昌县| 略阳县| 绍兴市| 阜康市| 通州市| 南平市| 邓州市| 乌恰县| 巴东县| 滨海县| 收藏| 昌邑市| 广西| 南雄市| 蕲春县| 天等县| 治多县| 呼玛县| 莲花县| 织金县| 湖口县| 宜川县| 宁安市| 浠水县|