幾個常用的Linux監控指令碼
最近時不時有網際網路的朋友問我關於伺服器監控方面的問題,問常用的伺服器監控除了用開源軟體,比如:cacti,nagios監控外是否可以自己寫shell指令碼呢?根據自己的需求寫出的shell指令碼更能滿足需求,更能細化主機監控的全面性。
下面是我常用的幾個主機監控的指令碼,大家可以根據自己的情況再進行修改,希望能給大家一點幫助。
1、檢視主機網絡卡流量
#!/bin/bash #network #Mike.Xu while : ; do time='date +%m"-"%d" "%k":"%M' day='date +%m"-"%d' rx_before='ifconfig eth0|sed -n "8"p|awk '{print $2}'|cut -c7-' tx_before='ifconfig eth0|sed -n "8"p|awk '{print $6}'|cut -c7-' sleep 2 rx_after='ifconfig eth0|sed -n "8"p|awk '{print $2}'|cut -c7-' tx_after='ifconfig eth0|sed -n "8"p|awk '{print $6}'|cut -c7-' rx_result=$[(rx_after-rx_before)/256] tx_result=$[(tx_after-tx_before)/256] echo "$time Now_In_Speed: "$rx_result"kbps Now_OUt_Speed: "$tx_result"kbps" sleep 2 done
2、系統狀況監控
#!/bin/sh #systemstat.sh #Mike.Xu IP=192.168.1.227 top -n 2| grep "Cpu" >>./temp/cpu.txt free -m | grep "Mem" >> ./temp/mem.txt df -k | grep "sda1" >> ./temp/drive_sda1.txt #df -k | grep sda2 >> ./temp/drive_sda2.txt df -k | grep "/mnt/storage_0" >> ./temp/mnt_storage_0.txt df -k | grep "/mnt/storage_pic" >> ./temp/mnt_storage_pic.txt time=`date +%m"."%d" "%k":"%M` connect=`netstat -na | grep "219.238.148.30:80" | wc -l` echo "$time $connect" >> ./temp/connect_count.txt
3、監控主機的磁碟空間,當使用空間超過90%就通過發mail來發警告
#!/bin/bash #monitor available disk space SPACE='df | sed -n '/ \ / $ / p' | gawk '{print $5}' | sed 's/%//' if [ $SPACE -ge 90 ] then [email protected] fi
4、 監控CPU和記憶體的使用情況
#!/bin/bash #script to capture system statistics OUTFILE=/home/xu/capstats.csv DATE='date +%m/%d/%Y' TIME='date +%k:%m:%s' TIMEOUT='uptime' VMOUT='vmstat 1 2' USERS='echo $TIMEOUT | gawk '{print $4}' ' LOAD='echo $TIMEOUT | gawk '{print $9}' | sed "s/,//' ' FREE='echo $VMOUT | sed -n '/[0-9]/p' | sed -n '2p' | gawk '{print $4} ' ' IDLE='echo $VMOUT | sed -n '/[0-9]/p' | sed -n '2p' |gawk '{print $15}' ' echo "$DATE,$TIME,$USERS,$LOAD,$FREE,$IDLE" >> $OUTFILE
5、全方位監控主機
#!/bin/bash # check_xu.sh # 0 * * * * /home/check_xu.sh DAT="`date +%Y%m%d`" HOUR="`date +%H`" DIR="/home/oslog/host_${DAT}/${HOUR}" DELAY=60 COUNT=60 # whether the responsible directory exist if ! test -d ${DIR} then /bin/mkdir -p ${DIR} fi # general check export TERM=linux /usr/bin/top -b -d ${DELAY} -n ${COUNT} > ${DIR}/top_${DAT}.log 2>&1 & # cpu check /usr/bin/sar -u ${DELAY} ${COUNT} > ${DIR}/cpu_${DAT}.log 2>&1 & #/usr/bin/mpstat -P 0 ${DELAY} ${COUNT} > ${DIR}/cpu_0_${DAT}.log 2>&1 & #/usr/bin/mpstat -P 1 ${DELAY} ${COUNT} > ${DIR}/cpu_1_${DAT}.log 2>&1 & # memory check /usr/bin/vmstat ${DELAY} ${COUNT} > ${DIR}/vmstat_${DAT}.log 2>&1 & # I/O check /usr/bin/iostat ${DELAY} ${COUNT} > ${DIR}/iostat_${DAT}.log 2>&1 & # network check /usr/bin/sar -n DEV ${DELAY} ${COUNT} > ${DIR}/net_${DAT}.log 2>&1 & #/usr/bin/sar -n EDEV ${DELAY} ${COUNT} > ${DIR}/net_edev_${DAT}.log 2>&1 &
放在crontab裡每小時自動執行:
0 * * * * /home/check_xu.sh
這樣會在/home/oslog/host_yyyymmdd/hh目錄下生成各小時cpu、記憶體、網路,IO的統計資料。
如果某個時間段產生問題了,就可以去看對應的日誌資訊,看看當時的主機效能如何。
相關推薦
幾個常用的Linux監控指令碼
最近時不時有網際網路的朋友問我關於伺服器監控方面的問題,問常用的伺服器監控除了用開源軟體,比如:cacti,nagios監控外是否可以自己寫shell指令碼呢?根據自己的需求寫出的shell指令碼更能滿足需求,更能細化主機監控的全面性。 下面是我常用的幾個主機監控的指令碼,
幾個常用網絡/服務器監控開源軟件
memcached 托管 不能 不足 div ios系統 正在 linux下 tle 想要更清晰的了解你的網絡嗎?沒有比這幾個免費的工具更好用的了。 網絡和系統監控是一個很寬的範疇。有監控服務器、網絡設備、應用正常工作的方案,也有跟蹤這些系統和設備性能,提供趨勢性能分
Linux先知和幾個常用命令細講
ubun bubuko 選擇 用戶 庫文件 重命名 options 共享 手冊 Linux先知: Linux歷史: 關於這個我就不再多說了,其實是一個很有意思的故事串,網上找下一大堆。 類Unix系統目錄結構: ubuntu沒有盤符這個概念,只有一個
列舉幾個常用的linux命令以及說明?
在這裡,為大家整理了一些經常用到的Linux命令,及常用引數,希望大家有用!如有偏頗,請指正! LS命令 -作用:顯示目錄內容,類似DOS下的DIR -格式:LS【options】【filename】 -常用引數: >-a:all,不隱藏任何以"."字元開始的檔案  
linux: 幾個常用makefile模板
不才,總結個人常用makefile模板,以備後用。 1、編譯動態庫 ############################################################# # Makefile for shared library. # 編譯動態連結庫
linux下的幾個網路流量監控工具使用
1、nethogs 1)NetHogs是一款開源、免費的,終端下的網路流量監控工具,它可監控Linux的程序或應用程式的網路流量。NetHogs只能實時監控程序的網路頻寬佔用情況。NetHogs支援IPv4和IPv6協議,支援本地網絡卡以及PPP連結 2)debian下安裝
Linux下幾個常用的快捷鍵
1. [tab] 鍵 在linux所有的shell中,[tab]是最常用的也是linux的bash shell中最棒的功能;它具有命令補全和檔案補全的功能。如果不使用[tab]鍵,那就別說自己懂linux! 舉例,命令補全 我想將磁碟格式化成ext3 ,但是不知道命令是什麼了
PHP執行系統命令的有幾個常用的函數
exe 自動 文件操作 nal 外部命令 中間 ring 打開 lcm PHP執行系統命令的有幾個常用的函數,如有:system函數、exec函數、popen函數,passthru,shell_exec函數他們都可以執行系統命令,不過前提時必須系統給了權限了哦。 syste
miniui幾個常用知識點匯總
簡單 去除 spa 自帶 超過 表格 繪制 val wro 1.在表格中去除系統自帶的序列號,請看代碼: function allAndBrief(id) { if(id==1){ grid.set({
hadoop的幾個常用命令
hadoop官方文檔:http://hadoop.apache.org/docs/r1.2.1/file_system_shell.html1、登錄主節點,切換到hdfs用戶[[email protected]/* */~]#su - hdfs2、列出當前目錄有哪些子目錄,有哪些文件[[email
封裝對象,包含幾個常用方法
nts opp 操作 阻止事件冒泡 3.1 坐標 stop pre 處理 這兩天復習了DOM事件綁定,記錄一下,便於復習學習。 1 事件處理程序 1.1 HTML事件處理程序:直接寫在html中,和html不解耦,修改麻煩 1.2 DOM0級事件處理程序:不寫在html
Python:print()函數的幾個常用參數
com file open 默認 strong 其他 end 空格 文件的 1.參數sep:設置輸出字符產之間的字符串。默認是空格 1 name=‘Tomwenxing‘ 2 age=‘23‘ 3 job=‘student‘ 4 print(name,age,job) 5
請求網頁幾個常用庫的用法:
完成 data report 第三方庫 () .get 參數說明 進度 函數 1、urllib urlopen()方法urllib.urlopen(url[, data[, proxies]]) :創建一個表示遠程url的類文件對象,然後像本地文件一樣操作這個類文件對
Python的幾個常用模塊
comm line 時間 sdi make 常用模塊 常用 一級目錄 就會 一、sys 用於提供對Python解釋器相關的操作: sys.argv 命令行參數List,第一個元素是程序本身路徑 sys.exit(n) 退出程序,正常退
幾個常用規則引擎的簡單介紹和演示
規則引擎 drools ilog odm Ilog JRules 是最有名的商用BRMS;Drools 是最活躍的開源規則引擎;Jess 是Clips的java實現,就如JRuby之於Ruby,是AI系的代表;Visual Rules(旗正規則引擎)國內商業規則引擎品牌。今天對比了一下這四個頗
Eclipse的幾個常用快捷鍵
單行 處理 所在 格式化 個常用快捷鍵 變量名 pan 單行註釋 自己 鍵盤操作 功能 Alt + / 語句或變量名自動補全 Ctrl + Shift + F 語句格式化 Ctrl + /
XPATH的幾個常用函數
寫法 www. ins 如果 情況 true id屬性 text 常用 1.contains (): //div[contains(@id,‘in‘)] ,表示選擇id中包含有’in’的div節點2.text():由於一個節點的文本值不屬於屬性,比如
wget命令的幾個常用選項和示例
一個 上下 由於 cnblogs 覆蓋 tmp pos ica 文件名 wget命令用來從指定的URL下載文件。wget非常穩定,它在帶寬很窄的情況下和不穩定網絡中有很強的適應性,如果是由於網絡的原因下載失敗,wget會不斷的嘗試,直到整個文件下載完畢。如果是服務器打斷下載
python通過一個語句分析幾個常用函數和概念
完全 1.4 優點 難解 實現 word 開篇 iter 執行 前言 過年也沒完全閑著,每天用一點點時間學點東西,本文為大家介紹幾個python操作的細節,包含all、any、for in等操作,以及介紹我解決問題的思路。 一、開篇 先從我看到的一個簡單的語句開始。 tex
PHP幾個常用的概率算法
pre 最終 iss 通過 col pretty rand AC each 算法一 /** * 全概率計算 * * @param array $p array(‘a‘=>0.5,‘b‘=>0.2,‘c‘=>0.4) * @return string 返回上