Linux環境下判斷伺服器是否正常關機

2021-05-18 01:28:14 字數 1262 閱讀 8765

2009-05-17  來自:zdnet    

收藏系統啟動的時候生成乙個檔案,正常關機的時候則刪除這個檔案,則可以根據系統開機時有沒有那個檔案來判斷是不是非正常關機。

系統啟動的時候生成乙個檔案,正常關機的時候則刪除這個檔案,則可以根據系統開機時有沒有那個檔案來判斷是不是非正常關機。

步驟:

在/etc/rc.d/init.d/下程式設計指令碼。

判斷是否正常關機,和生成檔案的指令碼:touch-file.sh

#!/bin/sh file=/tmp/check if [ -e $ ];then echo "this is not normal shutdown" >>/var/log/checkmessage else echo "this is normal shutdown and touch file" >>/var/log/checkmessage touch $ fi

正常關機刪除檔案的指令碼:rm-file.sh

#!/bin/sh file=/tmp/check echo "this is normal shutdown and rm file" >>/var/log/checkmessage rm -rf $

讓指令碼自動執行。

ln -s /etc/rc.d/rc0.d/k01rm-file /etc/rc.d/init.d/rm-file.sh

注意:

#ll /etc/rc.d/rc0.d/

軟連線兩邊的名字不哪呢個相同,後乙個可以用絕對路徑或是相對路徑,千萬保證兩邊的名字不一樣。

ln -s /etc/rc.d/rc6.d/k01rm-file /etc/rc.d/init.d/rm-file.sh ln -s /etc/rc.d/rc3.d/s01touch-file /etc/rc.d/init.d/touch-file.sh

我的系統沒用到x-window,所以沒有level5,也就是不用在/etc/rc.d/rc5.d/下放指令碼。

特別注意:

k開頭的代表系統關閉的時候執行,s開頭的代表開機的時候執行。注意伺服器指令碼編寫的規範,因為有k開通的軟鏈結並不一定會在關機的時候自動去執行,這是為什麼呢?執行k指令碼的時候會查詢/var/lock/subsys/下是否有與k開頭指令碼同名的空檔名,如果沒有就不去執行,所以要按照伺服器指令碼編寫的規範,啟動的時候要在/var/lock/subsys/先touch乙個與k01後面同名的空檔案:

#/var/lock/subsys #touch fm-file

Linux環境下判斷伺服器是否正常關機

啟動時生成乙個檔案,然後關機時把它刪掉。下次啟動時,如果這個檔案還在,就說明上次不是正常關機了。把刪除檔案的指令碼寫在 etc rc6.d 和 etc rc0.d 下,把判斷是否正常關機和生成檔案的指令碼放在 etc rc3.d 和 etc rc5.d 下。如果系統沒有預設的方法,我就按照flw的方...

linux如何判斷伺服器是否被入侵

實驗幾個步驟,借鑑資料,分享給。非常感謝網上提供資料幫助的。1 當時誰登入。拓展使用 whois ip位址 追查ip所註冊的組織的所有資訊,當然包括國家資訊 1 linux 下 whois 命令列的安裝 centos 下安裝命令如下 yum install y jwhois debian ubunt...

伺服器判斷http是否中斷

一般來說,只需要send或者recv一下,如果結果為零,則為掉線。1.當recv返回值為0是表示對方已經正常 msdn說是完美的 的斷開連線.2.當recv返回socket error時,說明對方已經斷開連線,但是可能是非正常斷開 斷網或者客戶端程序結束 如果你擔心在讀的時候被阻塞,使用select...