linux文件系统和日志分析!
linux文件系統(tǒng)和日志分析
- 一.inode和block
- block(塊)
- inode(索引節(jié)點(diǎn))
- inode的元信息
- 簡(jiǎn)述文件的讀取過(guò)程
- inode的特殊作用
- stat命令
- 二.硬鏈接與軟鏈接
- 硬鏈接
- 軟鏈接
- 三.恢復(fù)誤刪除的文件
- 1.xfsdump備份選項(xiàng)說(shuō)明
- 2.備份的級(jí)別
- 3.xfsdump備份,刪除,還原操作演示
- ①格式化硬盤,掛載,創(chuàng)建新文件
- ②備份文件到/bak
- ③ 查看備份文件信息xfsdump -I
- ④ 刪除文件
- ⑤從備份/bak中還原文件到/opt/bak
- ⑥查看文件是否還原
- 4.xfsdump使用限制
- 四.分析文件日志
- 1.日志的功能:
- 2.日志保存位置:
- 3.日志文件的分類:
- (1)內(nèi)核及系統(tǒng)日志
- (2)用戶日志
- (3)程序日志
- 4.日志注意事項(xiàng)
一.inode和block
概述
文件數(shù)據(jù)包括元信息和實(shí)際數(shù)據(jù)。
文件存儲(chǔ)在硬盤上,硬盤最小存儲(chǔ)單位是扇區(qū),每個(gè)扇區(qū)存儲(chǔ)512字節(jié)。
block(塊)
是文件存儲(chǔ)的最小單位,一個(gè)block大小為512*8=4k,連續(xù)8個(gè)扇區(qū)組成一個(gè)block。
inode(索引節(jié)點(diǎn))
也叫i節(jié)點(diǎn),用于存儲(chǔ)文件元信息。
inode的元信息
包括文件的字節(jié)數(shù),UID,GID,讀寫執(zhí)行權(quán)限,時(shí)間戳,
每一個(gè)文件都有一個(gè)inode,一般大小是128/256字節(jié)。格式化文件系統(tǒng)時(shí)就會(huì)確定inode的總數(shù)。
元信息,外在屬性信息,有個(gè)指向指向block,內(nèi)容不在inode里面,內(nèi)容存在block里。
所有inode 一起形成inode table
簡(jiǎn)述文件的讀取過(guò)程
/etc/1.txt文件讀取過(guò)程
先通過(guò)inodetable信息先對(duì)比目錄的inode找到目錄,再到目錄下通過(guò)inode table找文件對(duì)應(yīng)inode,然后指引到文件對(duì)應(yīng)的block讀取相對(duì)應(yīng)的內(nèi)容。
inode的特殊作用
由于inode號(hào)碼與文件名分離,導(dǎo)致一些Unix/Linux系統(tǒng)具有以下的現(xiàn)象
①當(dāng)文件名包含特殊字符,可能無(wú)法正常刪除文件,直接刪除inode,也可以刪除文件
②移動(dòng)或重命名文件時(shí),只改變文件名,不影響inode號(hào)碼
③打開(kāi)一個(gè)文件后,系統(tǒng)通過(guò)inode號(hào)碼來(lái)識(shí)別該文件,不再考慮文件名
stat命令
stat 文件名
查看文件的inode信息
atime 訪問(wèn)文件時(shí)間
mtime 修改文件內(nèi)容時(shí)間
ctime 修改文件屬性元信息時(shí)間
ll -i 321 可以查看到inode號(hào)
[root@localhost ~]# ll -i 321 540601712 -rw-r--r--. 1 root root 0 5月 17 17:04 321查看目錄下所有文件的inode號(hào)
ll -i
查看文件系統(tǒng)inode號(hào)
df -i
查看指定文件對(duì)應(yīng)的文件系統(tǒng)的統(tǒng)計(jì)信息
stat -f 文件名
看xfs文件系統(tǒng)的inode節(jié)點(diǎn)大小
ext4文件系統(tǒng)用dumpe2fs
xfs_info /dev/sda1
[root@localhost ~]# xfs_info /dev/sda1 meta-data=/dev/sda1 isize=512 agcount=4, agsize=12800 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=51200, imaxpct=25= sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=855, version=2= sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0isize表示為inode大小;agcount為存儲(chǔ)區(qū)群組(allocation group)的個(gè)數(shù)
sectsz指邏輯扇區(qū)(sector)的容量大小
bsize指block容量大小
sunit與swidth與stripe相關(guān)
internal指登錄區(qū)(log p)在文件系統(tǒng)內(nèi)部,而不在外部
bsize指占用區(qū)塊大小,blocks為數(shù)量
dumpe2fs /dev/sda1 | grep -i “inode size”
// An highlighted block var foo = 'bar';二.硬鏈接與軟鏈接
為文件或者目錄建立鏈接文件
鏈接文件有兩種,一種類似于Windows系統(tǒng)的快捷方式,可以快速連接到目標(biāo)文件或目錄,另一種則是通過(guò)文件系統(tǒng)的inode鏈接來(lái)產(chǎn)生的新文件名,而不產(chǎn)生新文件,這種就是硬鏈接
硬鏈接
文件名和inode號(hào)碼是對(duì)應(yīng)關(guān)系,每個(gè)inode號(hào)碼對(duì)應(yīng)一個(gè)文件名,
用ln 源文件 目標(biāo)文件 來(lái)創(chuàng)建硬鏈接
總結(jié):
硬鏈接不能對(duì)目錄創(chuàng)建,也不能跨文件系統(tǒng)創(chuàng)建。
創(chuàng)建硬鏈接的inode號(hào)是一樣的。
硬鏈接,相當(dāng)于是源文件的備份,硬鏈接的內(nèi)容隨著源文件的內(nèi)容而改變備份,但是刪除源文件不影響硬鏈接的文件,硬鏈接的文件內(nèi)容還在。
軟鏈接
軟鏈接就是在創(chuàng)建一個(gè)新文件,inode不再相同,而這個(gè)文件會(huì)讓數(shù)據(jù)的讀取指向它鏈接的那個(gè)文件的文件名,并且軟鏈接文件依賴源文件存在,如果刪除源文件的話軟鏈接就會(huì)失效
用ln -s 源文件 目標(biāo)文件 來(lái)創(chuàng)建軟鏈接
總結(jié)
軟鏈接相當(dāng)于是快捷方式
查看軟鏈接的inode 號(hào)和源文件是不同的。
軟連接可以跨文件系統(tǒng)
創(chuàng)建軟鏈接會(huì)發(fā)現(xiàn)軟鏈接文件會(huì)閃爍
刪除源文件,會(huì)發(fā)現(xiàn)軟鏈接文件還在,但是無(wú)法訪問(wèn)查看
三.恢復(fù)誤刪除的文件
xfsdump備份
xfsrestore還原
恢復(fù)的前提要做備份
1.xfsdump備份選項(xiàng)說(shuō)明
xfsdump -f 備份文件位置 備份的路徑或者設(shè)備文件
-L 卷標(biāo)
-M 媒體標(biāo)準(zhǔn)
-l 級(jí)別
-I 備份后查看狀態(tài)具體信息
2.備份的級(jí)別
0 完全備份 默認(rèn)為0,第一次備份都是需要完全備份
1-9 增量備份 只備份增加的
差異備份 只備份不一樣的
3.xfsdump備份,刪除,還原操作演示
①格式化硬盤,掛載,創(chuàng)建新文件
[root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 19G 0 part ├─centos-root 253:0 0 17G 0 lvm /└─centos-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 30G 0 disk ├─sdb1 8:17 0 2G 0 part └─sdb2 8:18 0 5G 0 part sr0 11:0 1 1024M 0 rom [root@localhost ~]# mkdir /opt/bak[root@localhost ~]# mkfs.xfs /dev/sdb1 meta-data=/dev/sdb1 isize=512 agcount=4, agsize=131072 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=524288, imaxpct=25= sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=2560, version=2= sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0[root@localhost ~]# mount /dev/sdb1 /opt/bak[root@localhost /]# df -Th 文件系統(tǒng) 類型 容量 已用 可用 已用% 掛載點(diǎn) /dev/mapper/centos-root xfs 17G 4.2G 13G 25% / devtmpfs devtmpfs 894M 0 894M 0% /dev tmpfs tmpfs 910M 0 910M 0% /dev/shm tmpfs tmpfs 910M 11M 900M 2% /run tmpfs tmpfs 910M 0 910M 0% /sys/fs/cgroup /dev/sda1 xfs 1014M 179M 836M 18% /boot tmpfs tmpfs 182M 8.0K 182M 1% /run/user/42 tmpfs tmpfs 182M 24K 182M 1% /run/user/0 /dev/sdb1 xfs 2.0G 33M 2.0G 2% /opt/bak[root@localhost ~]# cd /opt/bak [root@localhost bak]# ls[root@localhost bak]# touch 3 4 5 6 [root@localhost bak]# ls 3 4 5 6②備份文件到/bak
xfsdump -f /bak /dev/sdb1 -L sdb1 -M sdb1
[root@localhost bak]# xfsdump -f /bak /dev/sdb1 -L sdb1 -M sdb1 xfsdump: using file dump (drive_simple) strategy xfsdump: version 3.1.7 (dump format 3.0) - type ^C for status and control xfsdump: level 0 dump of localhost.localdomain:/opt/bak xfsdump: dump date: Sun May 23 16:03:43 2021 xfsdump: session id: 467360d1-f29b-4086-8e9e-1fde7d1353c8 xfsdump: session label: "sdb1" xfsdump: ino map phase 1: constructing initial dump list xfsdump: ino map phase 2: skipping (no pruning necessary) xfsdump: ino map phase 3: skipping (only one dump stream) xfsdump: ino map construction complete xfsdump: estimated dump size: 22080 bytes xfsdump: /var/lib/xfsdump/inventory created xfsdump: creating dump session media file 0 (media 0, file 0) xfsdump: dumping ino map xfsdump: dumping directories xfsdump: dumping non-directory files xfsdump: ending media file xfsdump: media file size 23608 bytes xfsdump: dump size (non-dir files) : 0 bytes xfsdump: dump complete: 0 seconds elapsed xfsdump: Dump Summary: xfsdump: stream 0 /bak OK (success) xfsdump: Dump Status: SUCCESS③ 查看備份文件信息xfsdump -I
[root@localhost bak]# xfsdump -I file system 0:fs id: e40cb524-d1cd-4548-81ce-edeec5c807b3session 0:mount point: localhost.localdomain:/opt/bakdevice: localhost.localdomain:/dev/sdb1time: Sun May 23 16:03:43 2021session label: "sdb1"session id: 467360d1-f29b-4086-8e9e-1fde7d1353c8level: 0resumed: NOsubtree: NOstreams: 1stream 0:pathname: /bakstart: ino 67 offset 0end: ino 71 offset 0interrupted: NOmedia files: 1media file 0:mfile index: 0mfile type: datamfile size: 23608mfile start: ino 67 offset 0mfile end: ino 71 offset 0media label: "sdb1"media id: dfb3423d-200e-4f6d-9299-e5489e290e8b xfsdump: Dump Status: SUCCESS④ 刪除文件
[root@localhost bak]# rm -rf * [root@localhost bak]# ls⑤從備份/bak中還原文件到/opt/bak
[root@localhost bak]# cd / [root@localhost /]# ls bak boot etc lib media opt root sbin sys usr bin dev home lib64 mnt proc run srv tmp var [root@localhost /]# xfsrestore -f /bak /opt/bak/ xfsrestore: using file dump (drive_simple) strategy xfsrestore: version 3.1.7 (dump format 3.0) - type ^C for status and control xfsrestore: searching media for dump xfsrestore: examining media file 0 xfsrestore: dump description: xfsrestore: hostname: localhost.localdomain xfsrestore: mount point: /opt/bak xfsrestore: volume: /dev/sdb1 xfsrestore: session time: Sun May 23 16:03:43 2021 xfsrestore: level: 0 xfsrestore: session label: "sdb1" xfsrestore: media label: "sdb1" xfsrestore: file system id: e40cb524-d1cd-4548-81ce-edeec5c807b3 xfsrestore: session id: 467360d1-f29b-4086-8e9e-1fde7d1353c8 xfsrestore: media id: dfb3423d-200e-4f6d-9299-e5489e290e8b xfsrestore: using online session inventory xfsrestore: searching media for directory dump xfsrestore: reading directories xfsrestore: 1 directories and 4 entries processed xfsrestore: directory post-processing xfsrestore: restoring non-directory files xfsrestore: restore complete: 0 seconds elapsed xfsrestore: Restore Summary: xfsrestore: stream 0 /bak OK (success) xfsrestore: Restore Status: SUCCESS⑥查看文件是否還原
[root@localhost /]# ls /opt/bak/ 3 4 5 6 [root@localhost /]#4.xfsdump使用限制
只能備份以掛載的文件系統(tǒng)
必須使用root權(quán)限才能操作
只能備份xfs文件系統(tǒng)
備份后的數(shù)據(jù)只能讓xfsrestore解析
不能備份兩個(gè)具有相同UUID的文件系統(tǒng)
四.分析文件日志
1.日志的功能:
用于記錄系統(tǒng)、程序運(yùn)行中發(fā)生的各種事件
通過(guò)閱讀日志,有助于診斷和解決系統(tǒng)故障
2.日志保存位置:
默認(rèn)位于: war/log目錄下
可以看出大部分存放到公共日志文件/var/log/message中,其他的日志文件直接發(fā)送給用戶或者放到自己獨(dú)立的日志文件中
3.日志文件的分類:
(1)內(nèi)核及系統(tǒng)日志
由系統(tǒng)服務(wù)rsyslog統(tǒng)-進(jìn)行管理,日志格式基本相似
由系統(tǒng)服務(wù)rsyslog統(tǒng)一管理
軟件包: rsyslog-7.4.7-16.el7.x86_ 64
●主要程序: /sbin/rsyslogd
配置文件: /etc/rsyslog.conf
日志消息的級(jí)別:
1.等級(jí)由低到高:debug<info<warn<Error<Fatal;
2.區(qū)別:
debug 級(jí)別最低,可以隨意的使用于任何覺(jué)得有利于在調(diào)試時(shí)更詳細(xì)的了解系統(tǒng)運(yùn)行狀態(tài)的東東;
info 重要,輸出信息:用來(lái)反饋系統(tǒng)的當(dāng)前狀態(tài)給最終用戶的;
后三個(gè),警告、錯(cuò)誤、嚴(yán)重錯(cuò)誤,這三者應(yīng)該都在系統(tǒng)運(yùn)行時(shí)檢測(cè)到了一個(gè)不正常的狀態(tài)。
warn, 可修復(fù),系統(tǒng)可繼續(xù)運(yùn)行下去;
Error, 可修復(fù)性,但無(wú)法確定系統(tǒng)會(huì)正常的工作下去;
Fatal, 相當(dāng)嚴(yán)重,可以肯定這種錯(cuò)誤已經(jīng)無(wú)法修復(fù),并且如果系統(tǒng)繼續(xù)運(yùn)行下去的話后果嚴(yán)重。
級(jí)別 對(duì)應(yīng)內(nèi)核日志級(jí)別 說(shuō)明
0 KERN_EMERG 緊急消息。系統(tǒng)崩潰之前提示,表示系統(tǒng)已不可用。
1 KERN_ALERT 報(bào)告消息。表示必須立即采取措施。
2 KERN_CRIT 臨界消息。通常涉及嚴(yán)重的硬件或軟件操作失敗。
3 KERN_ERR 錯(cuò)誤消息。串口日志的默認(rèn)級(jí)別。驅(qū)動(dòng)程序常用 KERN_ERR 來(lái)報(bào)告硬件的錯(cuò)誤。
4 KERN_WARNING 警告消息。對(duì)可能出現(xiàn)問(wèn)題的情況進(jìn)行警告。
5 KERN_NOTICE 正常但又重要的消息。用于提醒,常用于與安全相關(guān)的消息。
6 KERN_INFO 提示消息。如驅(qū)動(dòng)程序啟動(dòng)時(shí),打印硬件消息。
7 KERN_DEBUG 調(diào)試消息。設(shè)置此級(jí)別會(huì)打印所有日志消息。
日志記錄的一般格式:
[root@localhost /]# cd /var/log [root@localhost log]# tail -f messages May 23 22:09:47 localhost dbus[6391]: [system] Activating via systemd: service name='net.reactivated.Fprint' unit='fprintd.service' May 23 22:09:47 localhost systemd: Starting Fingerprint Authentication Daemon... May 23 22:09:47 localhost dbus[6391]: [system] Successfully activated service 'net.reactivated.Fprint' May 23 22:09:47 localhost systemd: Started Fingerprint Authentication Daemon. May 23 22:09:51 localhost gnome-keyring-daemon[8916]: couldn't initialize slot with master password: The password or PIN is incorrect May 23 22:09:51 localhost dbus[6391]: [system] Activating via systemd: service name='org.freedesktop.hostname1' unit='dbus-org.freedesktop.hostname1.service' May 23 22:09:51 localhost systemd: Starting Hostname Service... May 23 22:09:51 localhost dbus[6391]: [system] Successfully activated service 'org.freedesktop.hostname1' May 23 22:09:51 localhost systemd: Started Hostname Service. May 23 22:10:01 localhost systemd: Started Session 44 of user root. May 23 22:10:47 localhost journal: g_simple_action_set_enabled: assertion 'G_IS_SIMPLE_ACTION (simple)' failed May 23 22:10:47 localhost journal: g_simple_action_set_enabled: assertion 'G_IS_SIMPLE_ACTION (simple)' failed時(shí)間標(biāo)簽
主機(jī)名
子系統(tǒng)名
消息字段
(2)用戶日志
記錄系統(tǒng)用戶登錄及退出系統(tǒng)的相關(guān)信息
分析工具:users、 who、 W、last、 lastb
保存了用戶登錄、退出系統(tǒng)等相關(guān)信息
●/varl/log/lastlog:最近的用戶登錄事件
●/var/log/wtmp:用戶登錄、注銷及系統(tǒng)開(kāi)、關(guān)機(jī)事件
●/var/run/utmp:當(dāng)前登錄的每個(gè)用戶的詳細(xì)信息
●/var/log/secure:與用戶驗(yàn)證相關(guān)的安全性事件
一般本人查日志配合應(yīng)用的其他命令
history // 所有的歷史記錄
history | grep XXX // 歷史記錄中包含某些指令的記錄
history | more // 分頁(yè)查看記錄
history -c // 清空所有的歷史記錄
!! 重復(fù)執(zhí)行上一個(gè)命令
查詢出來(lái)記錄后選中 : !323
linux日志文件說(shuō)明
/var/log/message 系統(tǒng)啟動(dòng)后的信息和錯(cuò)誤日志,是Red Hat Linux中最常用的日志之一
/var/log/secure 與安全相關(guān)的日志信息
/var/log/maillog 與郵件相關(guān)的日志信息
/var/log/cron 與定時(shí)任務(wù)相關(guān)的日志信息
/var/log/spooler 與UUCP和news設(shè)備相關(guān)的日志信息
/var/log/boot.log 守護(hù)進(jìn)程啟動(dòng)和停止相關(guān)的日志消息
/var/log/wtmp 該日志文件永久記錄每個(gè)用戶登錄、注銷及系統(tǒng)的啟動(dòng)、停機(jī)的事件
(3)程序日志
由各種應(yīng)用程序獨(dú)立管理的日志文件,記錄格式不統(tǒng)一
由相應(yīng)的應(yīng)用程序獨(dú)立進(jìn)行管理
●Web服務(wù): Ivar/log/httpd/
◆access_ log、error_ log
代理服務(wù): /var/log/squid/
◆access.log、cache.log.
●FTP服務(wù): /var/log/xferlog
分析工具
●文本查看、grep過(guò)濾檢索、Webmin管理套件中查看
●awk、sed等文本過(guò)濾、格式化編輯工具
●Webalizer、Awstats等專用日志分析工具
看日志文件
centos 7 才有的 管理服務(wù)進(jìn)程的
journalctl
-k 看內(nèi)核
-b 看系統(tǒng)啟動(dòng)
-u 看某個(gè)服務(wù)
-e 從尾部開(kāi)始看 看最新的
-xe 提供知識(shí)的,有網(wǎng)頁(yè)可以參考
4.日志注意事項(xiàng)
1.定期備份,刪除
2.定期切割
3.對(duì)日志文件設(shè)置權(quán)限
4.定期檢查
總結(jié)
以上是生活随笔為你收集整理的linux文件系统和日志分析!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 启锐 打印机相关配件报价 售后
- 下一篇: Linux操作系统学习笔记3【图形界面与