1. 程式人生 > >Linux文件屬性

Linux文件屬性

linux基礎

ls –lhi = ll -hi

139610 drwxr-xr-x 2 root root 4.0K Oct 4 23:33 ad

139610 inode索引節點編號 系統讀取文件時,首先通過文件名找到inode,然後才能讀取到文件內容

drwxr-xr-x 第一位是文件類型、後面9位為文件權限

2 硬鏈接數量(同一個文件的,兩個不同的訪問入口) 一個鏈接刪掉,數據沒丟。

root 屬主

root 屬組

4.0K 大小

Oct 月份

4 日期

23:33 時間 最近修改時間? 修改時間也就是改變時間?

ad 文件名


硬盤要存數據

首先要分區(隔斷)

然後格式化(裝修) 最後存數據(住人)

被格式化為ext4CentOS6.7)文件系統後,一般分為兩個部分:

第一個是Inode(很多) 數據的屬性信息(也就是ls –l的結果)不限於

還包括文件實體的指針功能(inode節點 – block的對應關系)

但是inode唯獨不包括文件名

第二個是Block(很多) 存放實際數據

inode還會為每個文件進行信息索引,所以就有了inode的數值。操作系統根據指令,通過inode的值

最快的找到相對應的文件實體。


下圖對應關系 文件———inode———

block


技術分享


技術分享

兩種查看都行


技術分享

技術分享

第二個swap分區打不開 不清楚為啥

技術分享

第一和第三個分區大小不一樣


技術分享

一是boot 二是swap 三是根

使用情況


查看inode還剩多少

技術分享


任何一項滿了,就不能再放數據了


磁盤滿的一個特征

no space on device left

技術分享

8)一個文件正常情況下有且只能有一個inode(人和身份證)




技術分享


技術分享

技術分享

技術分享

補充6:可以認為是一個文件的不同入口


技術分享

技術分享


企業裏文件一般都會比較大(一般會大於4K),block設置大一些會提高磁盤訪問效率


技術分享


舉個例子,假設磁盤空間100M,A文件大小為10M,文件inode大小1M,符號鏈接0.1M。
創建文件後磁盤空間大小為100-10-1=89M,那麽以下操作對應的磁盤空間為:
1.
復制,使用cp命令,磁盤空間大小為89-10-1=78M
2.
硬鏈接,使用ln不帶參數命令,磁盤空間為89-1=88M
3.
軟鏈接,使用 ln -s命令,磁盤空間為89-0.1=88.9M
“復制”深度不同而已!


技術分享

這題目上網找下


技術分享

技術分享

last 顯示登錄列表/var/log/wtmp數據文件

lastlog 顯示最近登錄的用戶信息 /var/log/lastlog數據文件

dumpe2fs查看文件系統內部信息(元數據)

後面會講


技術分享

查看目錄


技術分享

技術分享

鏈接文件


技術分享


read 4

write 2

x 1 執行

- 0 沒有權限


技術分享


技術分享

技術分享


技術分享

技術分享


技術分享


總結:技術分享


軟鏈接

技術分享

包含源文件所在路徑 找它就會找到源文件路徑

技術分享


技術分享

技術分享


技術分享

技術分享

技術分享

第三條如果不理解看上面的圖


條件是文件的鏈接 文件! 文件!


技術分享

技術分享

技術分享


技術分享

技術分享

技術分享

一樣的


技術分享

而.. 指向的也是test目錄

技術分享


所以這裏的3 就是

技術分享

下級目錄的..為第三個


技術分享

所以這道題,第一個問題是2 第二個問題是3


技術分享

下面的一級目錄就有80 除去下面二級目錄裏的.. 以及目錄自身的.



技術分享

技術分享


技術分享動態文件刪除


http://oldboy.blog.51cto.com/2561410/612351

案例 要細看



#yuminstall httpd –y

#/etc/init.d/httpdstart

#lsof -i:80

#/etc/init.d/iptablesstop 防火墻關閉

#cd/etc/httpd/conf

#vimhttpd.conf

查找到這句在513行(set nu
技術分享

q


[root@hostconf 22:52:03]#grep "#CustomLog logs/access" httpd.conf

#CustomLoglogs/access_log common

查找到的內容 下條命令會替換掉

#sed -i‘s@#CustomLog logs/access_log common@CustomLog /app/logs/access_log common@g‘httpd.conf

替換掉


[root@hostconf 22:53:47]#grep "CustomLog /app/logs/access_log common"httpd.conf

CustomLog/app/logs/access_log common

驗證一下


創建一個小的文件系統,用於存放上述access_log日誌。

dd if=/dev/zero of=/dev/sdc bs=8K count=10


技術分享

技術分享


mkfs -t ext4 /dev/sdc 格式化


技術分享

tune2fs -c -1 /dev/sdc 上面寫了180天或29次後 要做檢查

這條命令之後就不會了


掛載

mount -oloop /dev/sdc /app/logs


技術分享

技術分享


echo oldboy >/var/www/html/index.html


(3)重啟httpd服務,確保日誌記錄到了上述文件系統掛載的/app/log下面

/etc/init.d/httpd restart


技術分享


(4)寫個循環腳本訪問httpd,使得httpd日誌充滿/app/logs整個空間。

for n in `seq 20000`;do curl -s 127.0.0.1>/dev/null;done


技術分享

弄了幾次都這麽大,以為哪出問題了 結果了因為已經滿了

[root@C64log]# df -h

技術分享


錯誤解決方法:

直接刪除日誌

技術分享

這樣沒有用

因為:只是刪除了文件

服務進程還在

而且這樣一弄,文件名就看不見了,但系統空間還是沒有釋放


技術分享

用這個命令查一下

lsof |grep del


技術分享


1、請先停掉模擬訪問測試腳本

forn in `seq 100000`;do curl -s 127.0.0.1 >/dev/null;done

重啟Http服務、查看處理結果


技術分享


7)較好的處理方案

清空日誌而不刪除日誌。

>/app/logs/access_log 下圖

技術分享


這個屬於block滿了 因為查看inode還沒有滿 一個大的文件進來占用所有block

技術分享

這個滿屬於Inode滿了 大量小文件 占滿所有inode

技術分享


本文出自 “11745576” 博客,請務必保留此出處http://11755576.blog.51cto.com/11745576/1975851

Linux文件屬性