8個非常實用的Linux系統監控shell指令碼
檢查程序是否存在
清單 1. 對程序進行監控
function GetPID #User #Name { PsUser=$1 PsName=$2 pid=`ps -u $PsUser|grep $PsName|grep -v grep|grep -v vi|grep -v dbx\n |grep -v tail|grep -v start|grep -v stop |sed -n 1p |awk '{print $1}'` echo $pid }
PID=`GetPID root CFTestApp` echo $PID
11426
[[email protected] shell]$
The process does not exist. # 檢查程序是否存在 if [ "-$PID" == "-" ] then { echo "The process does not exist." } fi
檢測程序 CPU 利用率
清單 2. 對業務程序 CPU 進行實時監控
function GetCpu { CpuValue=`ps -p $1 -o pcpu |grep -v CPU | awk '{print $1}' | awk - F. '{print $1}'` echo $CpuValue }
清單 3. 判斷 CPU 利用率是否超過限制
function CheckCpu { PID=$1 cpu=`GetCpu $PID` if [ $cpu -gt 80 ] then { echo “The usage of cpu is larger than 80%” } else { echo “The usage of cpu is normal” } fi }
CheckCpu 11426
The usage of cpu is 75 The usage of cpu is normal [[email protected] shell]$
檢測程序記憶體使用量
清單 4. 對業務程序記憶體使用量進行監控
function GetMem { MEMUsage=`ps -o vsz -p $1|grep -v VSZ` (( MEMUsage /= 1000)) echo $MEMUsage }
清單 5. 判斷記憶體使用是否超過限制
mem=`GetMem $PID` if [ $mem -gt 1600 ] then { echo “The usage of memory is larger than 1.6G” } else { echo “The usage of memory is normal” } fi
mem=`GetMem 11426` echo "The usage of memory is $mem M" if [ $mem -gt 1600 ] then { echo "The usage of memory is larger than 1.6G" } else { echo "The usage of memory is normal" } fi
The usage of memory is 248 M The usage of memory is normal [[email protected] shell]$
檢測程序控制代碼使用量
function GetDes { DES=`ls /proc/$1/fd | wc -l` echo $DES }
des=` GetDes $PID` if [ $des -gt 900 ] then { echo “The number of des is larger than 900” } else { echo “The number of des is normal” } fi
des=`GetDes 11426` echo "The number of des is $des" if [ $des -gt 900 ] then { echo "The number of des is larger than 900" } else { echo "The number of des is normal" } fi
The number of des is 528 The number of des is normal [[email protected] shell]$
檢視某個 TCP 或 UDP 埠是否在監聽
清單 6. 埠檢測
function Listening { TCPListeningnum=`netstat -an | grep ":$1 " | \n awk '$1 == "tcp" && $NF == "LISTEN" {print $0}' | wc -l` UDPListeningnum=`netstat -an|grep ":$1 " \n |awk '$1 == "udp" && $NF == "0.0.0.0:*" {print $0}' | wc -l` (( Listeningnum = TCPListeningnum + UDPListeningnum )) if [ $Listeningnum == 0 ] then { echo "0" } else { echo "1" } fi }
isListen=`Listening 8080` if [ $isListen -eq 1 ] then { echo "The port is listening" } else { echo "The port is not listening" } fi
The port is listening [[email protected] shell]$
tcp: netstat -an|egrep $1 |awk '$6 == "LISTEN" && $1 == "tcp" {print $0}' udp: netstat -an|egrep $1 |awk '$1 == "udp" && $5 == "0.0.0.0:*" {print $0}'
檢視某個程序名正在執行的個數
Runnum=`ps -ef | grep -v vi | grep -v tail | grep "[ /]CFTestApp" | grep -v grep | wc -l
檢測系統 CPU 負載
function GetSysCPU { CpuIdle=`vmstat 1 5 |sed -n '3,$p' \n |awk '{x = x + $15} END {print x/5}' |awk -F. '{print $1}' CpuNum=`echo "100-$CpuIdle" | bc` echo $CpuNum }
cpu=`GetSysCPU` echo "The system CPU is $cpu" if [ $cpu -gt 90 ] then { echo "The usage of system cpu is larger than 90%" } else { echo "The usage of system cpu is normal" } fi
The system CPU is 87 The usage of system cpu is normal [[email protected] shell]$
檢測系統磁碟空間
function GetDiskSpc { if [ $# -ne 1 ] then return 1 fi Folder="$1$" DiskSpace=`df -k |grep $Folder |awk '{print $5}' |awk -F% '{print $1}' echo $DiskSpace }
Folder="/boot" DiskSpace=`GetDiskSpc $Folder` echo "The system $Folder disk space is $DiskSpace%" if [ $DiskSpace -gt 90 ] then { echo "The usage of system disk($Folder) is larger than 90%" } else { echo "The usage of system disk($Folder) is normal" } fi
The system /boot disk space is 14% The usage of system disk(/boot) is normal [[email protected] shell]$
總結
相關推薦
8個非常實用的Linux系統監控shell指令碼
在伺服器運維過程中,經常需要對伺服器的各種資源進行監控,例如:CPU的負載監控,磁碟的使用率監控,程序數目監控等等,以在系統出現異常時及時報警,通知系統管理員。本文介紹在Linux系統下幾種常見的監控需求及其shell指令碼的編寫。 文章目錄: 1.Linux使用 S
Linux系統監控shell指令碼
開源專案 #! /bin/bash # unset any variable which system may be using unset tecreset os architecture kernelrelease internalip external
Linux系統下shell指令碼語言學習手冊指南
Linux shell指令碼全面學習 1. Linux 指令碼編寫基礎 1.1 語法基本介紹 1.1.1 開頭 程式必須以下面的行開始(必須方在檔案的第一行): #!/bin/sh 符號#!用來告訴系統它後面的引數是用來執行該檔案的程
shell指令碼實現linux系統監控
一、系統監控要監控什麼? 硬體 CPU: [[email protected] ~]# top | sed -n '3p' 記憶體: 檢視系統記憶體的使用情況: 硬碟: 檢視磁碟的使用情況 系統 負載: 系統執行時間: 檢視作業系統的版
從新手到系統管理員(二):Linux新手學習Shell指令碼程式設計的五個例子
本文由 [茶話匯] – [Qing] 編譯自 [Avishek Kumar] 轉載請註明出處 例子一:繪製特殊圖形 [code language=”bash”] #!/bin/bash MAX_NO=0 echo -n "Enter Number between (5 to 9) : " re
每個系統管理員都要知道的 30 個 Linux 系統監控工具
11. netstat - Linux 網路統計監控工具netstat 命令顯示網路連線、路由表、介面統計、偽裝連線和多播連線等資訊。# netstat -tulpn # netstat -nat12. ss - 網路統計ss 命令用於獲取套接字統計資訊。它可以顯示類似於 netstat 的資訊。不過 net
Linux 系統監控 硬盤分區及格式化
所在 占用 disk str 性能 多個進程 buffer 使用情況 alt top linux系統中性能分析工具,實時顯示系統中各個進程的資源占用情況,類似windows中的資源管理器。 free命令 顯示內存的使用情況,total,used,free,b
linux系統監控與硬盤分區/格式化/文件系統管理
時間 運行 輸入 -c 進程pid 死循環 running ddl 變慢 1.系統監控 1) 系統監視和進程控制的工具----> Top 與 free 類似於windows的資源管理器。 進程運行的三種狀態: tips: 進程(Proce
Linux系統監控工具
linux系統監控工具需要監視Linux服務器的性能?試試這些內置的命令和一些附加的工具吧。大多數Linux發行版都集成了一些監視工具。這些工具可以獲取有關系統活動的信息的詳細指標。通過這些工具,你可以發現產生系統性能問題可能存在原因。下面討論的是一些最基本的命令,它涉及到系統分析和調試服務器等一些問題,如:
linux系統監控:記錄用戶操作軌跡,誰動過服務器
linux linux script linux安全 linux系統監控 甘兵 1、前言 我們在實際工作當中,都碰到過誤操作、誤刪除、誤修改過配置文件等等事件。對於沒有堡壘機的公司來說,要在linux系統上深究到底誰做過配置文件的修改、做過誤刪除是很頭疼的事情,特別是遇到刪庫跑路
Linux 系統監控常用命令
索引 zest rec inter 常用命令 節點 bash intern 虛擬 簡介 列舉操作系統級監控常用的幾個方法,建議收藏使用 CPU top 命令可用於監控系統整體負載,包括cpu、內存使用等,能夠實時顯示系統中各個進程的資源占用狀況 輸出樣例 top - 19:
前端知識:12個非常實用的JavaScript小技巧
布爾 基本上 瀏覽器 表達 variable 希望 [] fine 實用 在這篇文章中將給大家分享12個有關於JavaScript的小技巧。這些小技巧可能在你的實際工作中或許能幫助你解決一些問題。 使用!!操作符轉換布爾值 有時候我們需要對一個變量查檢其是否存在或者檢查值是
(轉載)8個免費實用的C++GUI庫
模塊 開發 編程 除了 不可 ++ www 鏈接 mobile 8個免費實用的C++GUI庫 C++標準中並沒有包含GUI,這也使得C++開發圖形化界面需要依賴於第三方的庫。實際上,圖形界面恰恰是C++的強項,小到平常使用的各類桌面軟件,大到魔獸世界這樣的遊戲,都是C++
linux系統監控工具glances
版本信息 AR glances 通過 ip 地址 arch 下載安裝 mirrors 性能監控 glances linux系統自帶了很多系統性能監控工具,如top,vmstat,iftop等等,還有一款監視工具glances,它能把其他幾個監控的指標都集於一身。Glance
自己常用的linux系統優化shell(Centos6 64)
you end confd pci ctrl+ table ctrl update yun 優化內容包括 內核(文章末尾註釋掉了,看個人需求) ssh 時間同步 yum源 #!/bin/bash#update time 20180824#versio
幾個非常實用的JQuery程式碼片段
jQuery是一個相容多瀏覽器的javascript庫,核心理念是write less,do more(寫得更少,做得更多)。jQuery使使用者能更方便地處理HTML(標準通用標記語言下的一個應用)、events、實現動畫效果,並且方便地為網站提供AJAX互動。jQuery還有一個比較大的優勢是,它的文件說
幾個非常實用的JQuery代碼片段
內容 處理 resize 只需要 裏的 代碼 反序 表格 方法 jQuery是一個兼容多瀏覽器的javascript庫,核心理念是write less,do more(寫得更少,做得更多)。jQuery使用戶能更方便地處理HTML(標準通用標記語言下的一個應用)、event
linux下使用shell指令碼開啟多個terminal並在其中執行程式的方法
gnome-terminal(是一種模擬終端器,一說是ubuntu的terminal就叫gnome-terminal)命令用於開啟一個新的終端,直接在命令列 $ gnome-terminal 就可以開啟一個新的終端,有一些常用引數: 開啟後自動最大化 $ gnome-terminal --maxim
linux 系統監控和進程管理
inux 管理 殺死 資源 linux 系統 bubuko ps aux aux pgrep 1、命令top,查看cpu和內存使用,主要進程列表和占用資源。 2、內存使用命令foree -g 3、查詢所有java進程:pgrep -l java ------
Linux Centos7通過shell指令碼來監控mysql的執行狀態
vim checkmysql.sh #!/bin/sh #create by mingongge at 2018-10-10 port=`netstat -lnt|grep 3306|wc -l` if [ $post -ne 1 ] ;then now