偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

如何使用Shell解決問題進程?

運維 系統(tǒng)運維
如何使用Shell解決問題進程?實際上解決問題的思路非常簡單:通過CRON每分鐘運行一個Shell,查詢系統(tǒng)負載,一旦發(fā)現(xiàn)異常,就通過「ps」命令保存進程快照,也可以進一步保存負載,內(nèi)存等相關(guān)的數(shù)據(jù)。

  最近公司服務(wù)器不太穩(wěn)定,總是在凌晨某個時段突發(fā)高負載情況,因為客觀環(huán)境比較復(fù)雜,所以很難猜測出到底是哪個進程出現(xiàn)了問題,加之故障發(fā)生時,通常我在睡覺,無形中增加了解決問題的難度,于是我便寫了一個Shell來替我搞定這個問題。

  實際上解決問題的思路非常簡單:通過CRON每分鐘運行一個Shell,查詢系統(tǒng)負載,一旦發(fā)現(xiàn)異常,就通過「ps」命令保存進程快照,也可以進一步保存負載,內(nèi)存等相關(guān)的數(shù)據(jù),但通常沒有必要,因為通過「sar」命令很容易拿到。相關(guān)Shell代碼如下:

#/bin/bash
LOAD=$(awk '{print $1}' /proc/loadavg)
CPUNUM=$(grep processor /proc/cpuinfo | wc -l)

if [ $(echo "$LOAD > $CPUNUM" | bc) = 1 ]; then
    RESULT=$(ps -eo pcpu,pmem,user,args | awk '$1 > 0' | sort -nr)
    if [ -n "$RESULT" ]; then
        echo "$RESULT" > /var/log/snapshot.$(date +"%Y%m%d%H%M")
    fi
fi

  實際使用時需要注意的地方:首先,要避免日志文件塞滿硬盤;其次,因為是通過CRON來執(zhí)行的,所以可能會漏判,如果強調(diào)準確性請自行改寫為守護進程方式。

  這個Shell實在是太簡單了,簡單到我本不想專門寫一篇文章,不過它卻非常實用,幫我解決了大問題,所以還是記錄下來,希望它也能助大家一臂之力。

責任編輯:黃丹 來源: udpwork.com
相關(guān)推薦

2014-12-26 10:23:21

谷歌

2013-03-20 09:54:07

2010-05-06 17:07:34

Unix命令

2011-06-29 18:02:58

Qt 中文 翻譯

2022-09-02 16:07:02

團隊問題

2020-07-03 14:44:44

2009-07-28 12:35:37

querystring

2009-08-13 17:25:18

C# Convert類

2021-10-27 10:53:38

智慧城市智能移動技術(shù)智能

2013-09-25 10:18:26

Java啟發(fā)式搜索

2010-05-06 17:13:18

Unix命令

2011-06-30 14:16:25

QT 中文 亂碼

2009-12-28 14:15:06

ADO連接

2012-10-31 10:47:05

VMware

2023-11-03 13:38:49

代碼架構(gòu)

2016-06-15 10:08:29

云計算

2020-12-14 06:57:37

shell

2015-10-27 15:58:20

PHP程序員問題能力

2015-02-02 10:13:43

程序員

2010-01-06 10:08:57

點贊
收藏

51CTO技術(shù)棧公眾號