Linux
系統當機時如何自動重啟
我在一家銀行工作,我們一直在處理一個問題:我們的自動取款機一直凍結,每次凍結我們都需要重新設置它以使其恢復正常。但是現在我們是手動操作的,所以我們整天都在使用遠端訪問軟體監控自動取款機,每次看到凍結的 ATM 時,我們都會遠端重啟它。整天這樣做會非常緊張和累人,所以問題是:有沒有辦法讓系統在每次 ATM 軟體當機時重新啟動?作業系統是 Linux/Debian。
首先:我確實遇到了一個凍結的 linux,原因是:
- 硬體問題(RAM 模組、硬碟、PCI 卡故障)
- 不兼容的核心模組,錯誤的編譯核心
- 黑客入侵
對於診斷,我通常讓打開 SSH 伺服器來測試系統是否真的被凍結。
您需要的設備稱為watch-dog。這種設備通常連接到一個串列埠(或任何其他簡單的信號線),它的處理是等待定期接收一個簡單的信號——例如,它希望每分鐘接收一個字元串:“OK(CR)”。如果沒有這樣的信號,設備會拉動 CPU 晶片的複位引腳。系統必須每分鐘發送一次字元串。這種行為可以用 配置
cron
,但由於各種原因,系統可能無法及時捕捉到。時間不同步的任務,可以通過看門狗最近完成,anacron
但不可能通過看門狗完成。為此,最好使用 RT 核心或仔細設置看門狗週期。(設置設備等待5分鐘,但係統每2分鐘發送一次)無論如何,它不僅僅是軟體解決方案。
我的建議是:首先檢查系統,進行全新安裝並將其保存為磁碟映像(以便更好更快地恢復,以便以後與損壞的系統進行比較),保持您的會計子網更安全(使用私有地址範圍, 用 NAT 隔離, 防火牆…); 在這樣的子網中建構一個日誌伺服器並配置您的 linux 機器以將其日誌發送給它。
只需讓您的系統更健壯、更安全和更詳細。