Process

捕捉神秘過程的最佳策略是什麼?

  • August 25, 2016

我在我的伺服器上執行的程序每天晚上都會在午夜被殺死。它在工作,當它發生時我不在身邊,我沒有遠端訪問權限。

殺戮發生在每晚 23 點 59 分。我知道這一點,因為當我第二天到達時:

  • 程序截至 23:59
  • 該過程的日誌顯示上次修改時間為 23:59(並且新的日期日誌隨即開始)。

由於殺戮發生在同一時間,我強烈懷疑是批處理作業。我翻遍了crontab我們所有機器的 s 並找不到任何東西。顯然我錯過了一些東西。

我正在考慮佈置一個監視腳本,它會ps間歇性地報告輸出,會在at幾分鐘前啟動並循環一段時間。這個想法似乎很弱並且很容易出錯,所以我想知道是否有人有更好的想法。

更多細節:

  • 宇宙是一個非常大且非常古老的遺留系統;我的團隊中似乎沒有人知道這樣的過程(如果有人知道,她會在我們的團隊中)儘管更大的組織由數千名員工組成,但理論上他們中的很多人都可以訪問這個過程(我看不到為什麼他們會)。換句話說,安全性不是很嚴格。
  • 環境由多台執行 Solaris 10 的機器組成。
  • 它不是生產環境,因此超時或停機時間並不重要。
  • 我不排除殺戮可能不是由於批處理作業的可能性,儘管不太可能,因為時間有多準確。
  • 顯然,我們的簿記存在缺陷,因此任何可以想像的事情都是可能的。

我的問題是採用的最佳策略是什麼?它屬於“在遺留系統上工作的樂趣”這一更大的保護傘。我開始編寫我的腳本,我很快就會在此處發布以獲取回饋。同時,如果有人有更好的主意,請說出來。

定期輪換日誌很常見,在午夜輪換它們很常見。許多應用程序會自動執行此操作。

對於那些沒有這樣的工具logrotate的人將進行輪換。許多程序被配置為在發送 HUP 信號時重新打開其日誌,這是logrotate.

檢查事項:

  • 是否所有的 PID 都發生了變化。如果不是,那麼程序可能正在輪換它們自己的日誌,或者適當地響應它們的日誌輪換。
  • 對於更改 PID 的程序,它們是否在午夜重新啟動?如果不檢查他們的父母,看看它做了什麼。
  • 檢查 root 的 crontab 以查看一天結束時執行的程序。
  • 檢查程序使用者 ID 的 crontab 以查看在一天結束時執行的程序。
  • 檢查日誌文件是直接寫入,還是由旋轉日誌的日誌寫入器寫入。

引用自:https://unix.stackexchange.com/questions/35881