Linux文件與日志

目錄

1. Linux 文件系統

1.1 inode號

1.2 EXT類型文件恢復

1.3 xfs類型文件備份和恢復

2. 日志分析

2.1 日志類型

2.2日志配置文件

2.3 日志分析的重要性


在Linux系統中,文件和日志是管理和維護系統運行所不可或缺的。理解它們的工作原理和如何有效地管理和分析是每個系統管理員和開發人員的必備技能。

1. Linux 文件系統

1.1 inode號

文件是存儲在硬盤上的,硬盤的最小存儲單位叫做“扇區”,每個扇區存儲512字節。一般連續八個扇區組成一個"塊”(block),一個塊是4K大小,是文件存取的最小單位。操作系統讀取硬盤的時候,是一次性連續讀取多個扇區,即一個塊一個塊的讀取的。

我們平時所創建的文件還有系統自己的配置文件等都是放在這些扇區中。那么,系統中如此多的文件,有些時候明明看文件內容是空的,但是卻占用了一定的磁盤空間,這是為何呢?還有些文件名特別長,而且雜亂無章,那么該如何快速的找到這個文件呢?其實,每個文件都有它自己的屬性,我們稱之為文件的元信息,存儲文件元信息的地方就叫做inode,每個文件都有自己的獨一無二的inode(之前說過軟連接硬鏈接,硬連接的inode號和源文件一樣),并且,至少占用一塊block,每個inode的大小,一般是128字節或256字節,這就是為什么,明明有些文件內容是空的,卻占用了一定的空間。Linux系統中,我們可以用

stat 文件名? ? ? ? ? ? ?

或者

ls -i 文件名

來查看文件的inode號,注意,目錄是不可以查看的,就像每個人都有身份證,他們的家庭有家庭證嗎?那肯定沒有,目錄有其他表示它的東西。

我們也可以用?

df-i

命令查看每個硬盤分區對應的的inode總數和已經使用的inode數量。

前面也說到每個inode號都會占據128字節的空間,我們可以df -Th 看一下硬盤已用空間

假如我們有一塊5GB的硬盤,5GB = 5 × 1024MB = 5120MB,每個inode大小 = 128字節 = 0.125KB

5GB的硬盤總大小 = 5120MB = 5120 × 1024KB,每1KB設置一個inode,所以有5120 × 1024個inode

那么每個inode大小為0.125KB,所以inode table的總大小 = 5120 × 1024 × 0.125KB = 655360KB = 640MB

所以可以得出 inode table的大小占硬盤比例 = (640MB / 5120MB) × 100% ≈ 12.5%

所以說了這么多,我們只知道它代表一個文件,node號有啥用呢?

當一個文件文件名包含特殊字符或者這個文件名非常非常長,可能無法正常刪除。這時候我們直接刪除它的inode號,也能夠起到刪除文件的作用。其他作用暫時也不需要了解,只要知道,移動文件或重命名文件,只是改變文件名,不影響inode 號碼,文件數據被修改保存后,會生成一個新的inode 號碼,我們也可以通過inode號來查找文件? 用 find -inum? 命令

1.2 EXT類型文件恢復

前面說到我們可以根據文件的inode號刪除文件,但要知道,inode號雖說不是很長,但也有六七位,七八位,難免有的時候會輸錯,畢竟,有些人連六位數驗證碼都要看兩遍。那么,文件不小心刪錯了該怎么辦呢?

首先,如果是EXT類型的文件,我們需要用到? extundelete? ?這是一個開源的數據恢復工具,支持ext3、 ext4文件系統。

首先創建一個磁盤分區,步驟在我前面的博客中有些,這里就快速操作跳過了。

partprobe /dev/sdb? ? ? ? ? ? ????? ? ? ? ?重新讀取分區表

mkfs.ext3 /dev/sdb1? ? ? ? ? ? ? ? ? ?????格式化

mkdir /test? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

mount /dev/sdb1 /test? ? ? ? ? ? ? ? ? ? ?將sdb1掛載到test目錄? ?

yum -y install e2fsprogs-devel e2fsprogs-libs gcc gcc-c++? ? ? ? ? ? ? ? ? 安裝依賴包

cd /test? ? ? ? ? ?

wgethttp://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2

我是有這個壓縮包,直接拖進去的

tar jxvf extundelete-0.2.4.tar.bz2? ? ? ? ? ? ?解壓縮

cd extundelete-0.2.4/? ? ? ? ? ? ? ? ? ? ? ??

./configure && make && make install

ln -s /usr/local/extundelete/bin/* /usr/bin/? ? ? ??

cd /test

echo a>a? ? ? ? ? ? ??

echo b>b

echo c>c

echo d>d? ? ? ? ? ? ? ? ? ? ? ?創建1234四個文件夾,分別寫入1234

extundelete /dev/sdc1 --inode 2? ? ? ? ? ?查看文件系統/dev/sdc1下存在哪些文件,i節點是從2開始的,2代表該文件系統最開始的目錄。

rm -rf a? b? ? ? ? ? ? ? ? ? ?刪除

umount /test

extundelete /dev/sdc1 --restore-all? ? ? ? ? ? ?恢復/dev/sdc1 文件系統下的所有內容

然后我們就會在目錄下發現一個RECOVERED_FILES/目錄,里面就存放著我們剛才刪除的文件

1.3 xfs類型文件備份和恢復

CentOs 7系統默認采用xfs類型的文件,xfs類型文件如果被誤刪了呢?xfs 類型的文件可使用xfsdump 與xfsrestore 工具進行備份恢復。

xfsdump? 命令格式為

xfsdump | -f? ? ?備份存放位置 要備份的路徑或設備文件

但是有幾點,只能備份已掛載的文件系統,而且必須使用root的權限才能操作。

下面來實機演示一下

首先還是先創建磁盤分區

fdisk /dev/sdb

然后格式化? ?mkfs

mkdir /data

mount /dev/sdb1 /data/

cd /data

cp /etc/passwd ./

mkdir test

touch test/a

rpm -qa | grep xfsdump

yum install -y xfsdump

xfsdump -f /opt/dump_sdb1 /dev/sdb1 [-L dump_sdb1 -M sdb1]

xfsdump -f /opt/dump_sdb /dev/sdb1 -L dump_sdb -M sdb1

---模擬數據丟失并使用xfsrestore 命令恢復文件

cd /data/

rm -rf ./*

ls

xfsrestore -f /opt/dump_sdb1 /data/

可以看到,刪除的兩個文件恢復了

2. 日志分析

2.1 日志類型

日志文件記錄了系統和應用程序的運行狀態、事件和錯誤信息。它是存儲數據的容器,提供了訪問和管理文件的方法。對日志文件進行分析可以幫助管理員診斷問題、監控系統性能并執行安全審計。目錄通常都存放在 /var/log/目錄下,由/etc/rsyslog.conf 配置文件管理。常見的日志文件有以下幾種

系統日志(/var/log/messages):記錄系統級事件和錯誤信息,如啟動、關機、服務啟動和停止等。

計劃任務日志(/var/1og/cron ): 記錄crond計劃任務產生的事件信息。

安全日志(/var/log/secure):記錄用戶登錄、權限更改和安全相關事件,對于安全審計非常重要。

應用程序日志:各種應用程序會生成自己的日志文件,記錄其運行狀態和錯誤信息。例如,Web 服務器日志是? /var/log/httpd/access_log ,記錄 HTTP 請求和響應信息。

郵件系統日志:(/var/log/maillog):?記錄進入或發出系統的電子郵件活動。

2.2日志配置文件

我們查看一下? /etc/rsyslog.conf? ?文件

set nu? 設置以下行號,在54行有這樣一段代碼

*.info? ? ? ? ? ? ?--表示info等級及以上的所有等級的信息都寫到對應的日志文件里

等級從高到底依次是

0 EMERG(緊急):會導致主機系統不可用的情況

1 ALERT(警告):必須馬上采取措施解決的問題

2 CRIT(嚴重):比較嚴重的情況

3 ERR (錯誤) :運行出現錯誤

4 WARNING(提醒):可能影響系統功能,需要提醒用戶的重要事件

5 NOTICE (注意) :不會影響正常功能,但是需要注意的事件

6 INFO(信息):一般信息

7 DEBUG(調試):程序或系統調試信息等。

mail.none? ? ????????--這部分表示排除所有與郵件相關的日志消息,即不捕獲 mail 的任何日志消息。

后面的? authpriv.none? 和 cron.none? 也是同樣的意思

再后面那一塊被水印擋住了,那個可以根據上面給出的日志類型,看出是系統日志

我們來進入系統日志看一下??/var/log/messages

可以看到,紅黃藍綠的,眼花繚亂

我們一種顏色一種顏色把它拆解開來

分別是 時間? ?主機名? 子系統名稱? 具體信息

具體信息那一欄我們看到紅色? 就說明是報錯信息,比如這里就有一段報錯信息,根據報錯信息,我們就能知道哪里出了問題,從而去解決問題。

2.3 日志分析的重要性

有效的日志分析可以幫助管理員實時監控系統健康狀態、及時發現和解決問題,提升系統的穩定性和安全性。定期審查和分析日志還可以幫助預測和規劃系統的未來需求,優化系統資源的使用。

總結來說,Linux 文件系統和日志分析是系統管理中不可或缺的一部分,通過深入了解和適當的工具使用,管理員可以更好地管理和優化Linux系統的運行。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/40529.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/40529.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/40529.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

驅動開發:配置Visual Studio驅動開發環境

100編程書屋_孔夫子舊書網 配置驅動開發環境配置驅動開發模板配置驅動雙機調試 在正式開始驅動開發之前,需要自行搭建驅動開發的必要環境,首先我們需要安裝Visual Studio 2013這款功能強大的程序開發工具,在課件內請雙擊ISO文件并運行內部的…

2009-2024年第一季度上市公司華證ESG評級季度數據

2009-2024年第一季度上市公司華證ESG評級季度數據 1、時間:2009-2024年第一季度 2、指標:證券代碼、證券簡稱、評級日期、綜合評級、綜合得分、E評級、E得分、S評級、S得分、G評級、G得分、證監會行業(新)、同花順行業&#xff…

Visio框圖自動帶填充色原因及如何取消

0 Preface/Foreword Visio,Windows的一個流程圖&框圖制作工具。 1 新建Visio文件 1.1 圖形帶填充 新建Visio時候,如果選擇了模版,那么就后期使用的工具元素會自動填充。 帶來的弊端,在元素編輯文字時,如果此時不…

蘋果公司的Wifi定位服務(WPS)存在被濫用的風險

安全博客 Krebs on Security 2024年5月21日發布博文,表示蘋果公司的定位服務存在被濫用風險,通過 "竊取"WPS 數據庫,可以定位部隊行蹤。 相關背景知識 手機定位固然主要依賴衛星定位,不過在城市地區,密集的…

Perl 語言開發(五):循環語句

目錄 1. 循環語句概述 2. while 循環 2.1 基本語法 2.2 示例 2.3 無限循環 3. until 循環 3.1 基本語法 3.2 示例 3.3 無限循環 4. for 循環 4.1 基本語法 4.2 示例 4.3 嵌套循環 5. foreach 循環 5.1 基本語法 5.2 示例 5.3 遍歷哈希 6. 循環控制語句 6.1 …

新建Vue工程的幾種方法

文章目錄 使用CLI2 : vue-cli使用CLI3 : vue/cli使用 vue3構建 (內置Vite)直接使用Vite使用parcel (最少配置方案) 使用CLI2 : vue-cli vue-cli是針對構建vue的腳手架CLI2,只能新建vue2工程。 全局安裝vue-cli之后,構建vue2項目的…

03.C1W2.Sentiment Analysis with Na?ve Bayes

目錄 Probability and Bayes’ RuleIntroductionProbabilitiesProbability of the intersection Bayes’ RuleConditional ProbabilitiesBayes’ RuleQuiz: Bayes’ Rule Applied Nave Bayes IntroductionNave Bayes for Sentiment Analysis P ( w i ∣ c l a s s ) P(w_i|clas…

大數據領域的深度分析——AI是在幫助開發者還是取代他們?

在大數據領域,生成式人工智能(AIGC)的應用正在迅速擴展,改變了數據科學家和開發者的工作方式。本文將從大數據的專業視角,探討AI工具在這一領域的作用,以及它們是如何幫助開發者而非取代他們的。 1. 大數據…

npm 淘寶鏡像證書過期,錯誤信息 Could not retrieve https://npm.taobao.org/mirrors/node/latest

更換 npm 證書 問題描述報錯原因更換步驟1 找到 nvm 安裝目錄2 發現證書過期3 更換新地址4 保存后,重新安裝成功 問題描述 在使用 nvm 安裝新版本時,未成功,出現報錯: Could not retrieve https://npm.taobao.org/mirrors/node/l…

【postgresql】表操作

創建表 (CREATE TABLE): CREATE TABLE table_name ( column1 data_type constraint,column2 data_type constraint,... ); 插入數據 (INSERT INTO): INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...); 查詢數據 (SELECT): SELECT column1, c…

火山引擎數據飛輪實踐:在電商場景中,如何建設全鏈路數據血緣?

數據作為新型生產要素,正支撐企業的數智化轉型。但企業數字化建設也存在管理成本高、數據產品使用門檻高、數據資產價值不夠的問題,其原因在于業務和數據之間沒有形成雙向良性驅動。 結合新時代企業數字化轉型需求,火山引擎基于字節跳動十余…

IC燒錄員-帶著工程師的夢想遠航!

如果說軟件工程師是代碼程序的創造者,那么IC燒錄員就是把工程師們辛苦敲代碼,日夜辛勞的成果燒錄到芯片里面的實踐者,是他們,讓工程師們的夢想運用到實踐中,是他們帶著工程師的夢想遠航,他們的薪酬或許沒有…

第一節-k8s架構圖

一個Deployment,可以由多個不同Node下的Pod組成,每個Pod又由多個Container組成。 區分Deployment是用Labels(key:value),區分Pod是用PodName,區分Container是用ContainerName。 一個Node可以包含多個不同Deployment中的pod&…

MySQL-作業1

一、數據庫 1、登陸數據庫 2、創建數據庫zoo 3、修改數據庫zoo字符集為gbk 4、選擇當前數據庫為zoo 5、查看創建數據庫zoo信息 6、刪除數據庫zoo 二、創建表 1、創建一個名稱為db_system的數據庫 2、在該數據庫下創建兩張表,具體要求如下: 員工表 user …

米國政府呼吁拋棄 C 和 C++

在開始前剛好我有一些資料,是我根據網友給的問題精心整理了一份「C的資料從專業入門到高級教程」, 點個關注在評論區回復“888”之后私信回復“888”,全部無償共享給大家!!! 很多觀點認為C 或 C永遠不可被…

頁面集成技術方案匯總

1.window.open() 優點: 新開窗口或標簽頁展示內容:允許在新的瀏覽器窗口或標簽頁中打開指定的URL,適用于需要獨立頁面交互的場景。隔離性:新窗口擁有獨立的執行環境,不會干擾主頁面的JavaScript上下文和DOM結構。易于實現&#…

聚鼎裝飾畫:裝飾畫生意現在做晚嗎

在這個充滿機遇與挑戰的時代,涉足裝飾畫領域是否為時已晚?許多人心中或許有著這樣的疑問。事實上,盡管市場上的競爭者眾多,但正如“朝霞映滿天,別樣紅”一般,每個行業的黃金時期都有所不同,關鍵在于我們能…

設計模式-裝飾器

裝飾器模式是一種結構型設計模式,它允許在運行時擴展一個對象的功能,而不需要改變其現有結構。這種模式的核心思想是通過創建一個裝飾器來動態地增強或修改原有對象的行為。裝飾器模式是繼承的一個補充,提供了比繼承更加靈活的方式來擴展對象…

在線JSON可視化工具--改進

先前發布了JSON格式化可視化在線工具,提供圖形化界面顯示結構關系功能,并提供JSON快速格式化、JSON壓縮、快捷復制、下載導出、對存在語法錯誤的地方能明確顯示,而且還支持全屏,極大擴大視野區域。 在線JSON格式化可視化工具 但…

Cannot load configuration class: com.xxx.NacosConfigApplication

Cannot load configuration class: com.xxx.NacosConfigApplication 無法啟動成功 表象錯誤的日志信息解決方案結言 表象 最簡單的Spring Boot maven 配置 properties配置 啟動類,但是,就是無法啟動成功。 錯誤的日志信息 java.lang.IllegalStateEx…