Linux判斷系統(tǒng)是否發(fā)生過異常斷電的三種方法
在 Linux(Ubuntu)系統(tǒng)中,判斷系統(tǒng)是否發(fā)生過異常斷電(非正常關機),主要有以下三種方法。其中 方法一 是最準確的,因為它利用了系統(tǒng)的“正常關機標記”機制。
方法一:查看系統(tǒng)啟動日志中的“文件系統(tǒng)檢查”記錄(最推薦)
Linux 系統(tǒng)在啟動時會檢查文件系統(tǒng)。如果上一次關機是正常的(執(zhí)行了 shutdown 或 reboot),系統(tǒng)會在磁盤上留下一個“干凈”的標記。如果是突然斷電,這個標記沒來得及寫,系統(tǒng)下次啟動時就會檢測到,并強制進行文件系統(tǒng)檢查(fsck)。
1. 使用journalctl查看
這是最快的方法。如果看到 UNEXPECTED INCONSISTENCY 或 was not cleanly unmounted,說明發(fā)生過異常斷電。
# 搜索包含 "clean" 或 "check" 字樣的啟動記錄 sudo journalctl -b -1 -u systemd-fsck
-b -1:表示查看上一次啟動的日志(如果你剛斷電重啟,就看這次啟動的記錄)。
正常關機的顯示:
Clean, 12345/67890 files, ...
(說明關機正常,文件系統(tǒng)是干凈的)
異常斷電的顯示:
UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
或者
The disk drive for / was not cleanly unmounted...
(說明斷電了,系統(tǒng)正在自動修復文件系統(tǒng))
2. 查看dmesg內(nèi)核日志
如果 journalctl 沒看到,可以直接看內(nèi)核打印的信息:
dmesg | grep -iE "dirty|unclean|fsck"
- 如果輸出中包含
resyncing或journal has been aborted,通常是異常斷電的鐵證。
方法二:查看last -x命令的關機時間
last 命令不僅記錄登錄,也記錄系統(tǒng)狀態(tài)的切換。加上 -x 參數(shù)可以看到關機(shutdown)和運行級別切換。
last -x | head -20
如何分析:
看 shutdown 或 reboot 條目后面的時間跨度:
正常情況:
shutdown system down 5.15.0-... Fri Jan 9 18:00 - 18:05 (00:05)
(顯示了明確的關機時間點)
異常情況:
你可能看不到 shutdown 條目,或者看到 crash 字樣,或者上一次的 reboot 直接接在下一次的 reboot 之前,中間沒有 shutdown 記錄。
方法三:查看/var/log/syslog中的關機記錄
系統(tǒng)正常關機時,rsyslog 服務會在停止前寫入一條明確的日志。
# 搜索 syslog 中關于關機的記錄 grep -i "shutdown complete" /var/log/syslog*
- 正常關機:會找到類似
System shutdown complete.的字樣,且時間戳對應你關機的時間。 - 異常斷電:日志文件會在某個時間點戛然而止,后面緊接著就是下一次開機的日志,中間沒有“Shutdown complete”的告別語。
總結:快速判斷口訣
- 打開終端,輸入:
sudo journalctl -b -1 | grep -i clean - 如果看到 “Clean” -> 上次關機正常。
- 如果看到 “Dirty”、“Inconsistency” 或 “Unclean” -> 上次是異常斷電。
到此這篇關于Linux判斷系統(tǒng)是否發(fā)生過異常斷電的三種方法的文章就介紹到這了,更多相關Linux判斷系統(tǒng)異常斷電內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
yum install -y zlib zlib-devel 報錯問題
這篇文章主要介紹了yum install -y zlib zlib-devel 報錯問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04
Apache?Doris?中Compaction問題分析和典型案例分析
這篇文章主要介紹了Apache?Doris?中Compaction問題分析和典型案例,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-08-08

