簡體   English   中英

linux中的性能監控腳本

[英]Performance monitoring script in linux

我正在嘗試創建一個腳本,允許我監視CPU利用率,內存利用率,I / O利用率和網絡利用率。 目前,我有一個應該在linux上運行必要命令的腳本。 希望最后,我能夠每隔15分鍾左右運行一次,然后使用特定信息來分析數據。 以下是腳本:

#!/bin/sh
########################################################
OUTPUT="ServerPerf`date '+%d%m%y'`.out"
(
echo "=================================================="
echo " Script Starting Time : `date` "
echo "================================================="
echo " Disk I/O Status "
echo "================================================="
echo
iostat
echo
echo "================================================="

echo "##################################################"
echo " NETWORK TCP PARAMETERS STATUS "
echo "##################################################"
echo
echo
netstat -sp tcp
echo
echo " Processes List "
echo
ps -elf
echo
echo " END "
echo
echo "##################################################"
echo "##################################################"
echo " NETWORK CONNECTION PARAMETER "
echo "##################################################"
echo
echo
netstat -an
echo
echo
echo "##################################################"
echo " NETWORK TRAFFIC STATUS ON INTERFACES "
echo "##################################################"
echo
echo
netstat -i
echo
echo
echo "##################################################"
echo " SERVER MEMORY/CPU Utilization Report "
echo "##################################################"
echo
top -d1 -n 5
echo "=================================================="
echo " VMSTAT INFO "
echo "=================================================="
echo
vmstat 5 5
echo
echo "=================================================="
echo " Script Ending Time : `date` "
echo
echo "=================================================="
) >> $OUTPUT

現在,我想從這些創建的文件中獲取有用的數據。 有幾個類別可以將數據分類到:

  1. 負載平均值
  2. CPU空閑百分比
  3. 內核利用率
  4. 內存利用率
  5. 交換活動

我正在嘗試使用這些命令生成這5個文件,似乎有困難。

grep "load avg" /home/test/logs/ServerPerf180610.out | awk '{ print $6 }' | awk -F, '{ print $1 }' > load_avg.txt
grep "CPU states" /home/test/logs/ServerPerf180610.out | awk '{ print $3 }' | awk -F% '{ print $1 }' > cpu_idle.txt
grep "CPU states" /home/test/logs/ServerPerf180610.out | awk '{ print $7 }' | awk -F% '{ print $1 }' > cpu_kernel.txt
grep "Memory" /home/test/logs/ServerPerf180610.out | awk '{ print $5 }' | awk -FG '{ print $1 }' > memory_util.txt
grep "Memory" /home/test/logs/ServerPerf180610.out | awk '{ print $11 }' | awk -FG '{ print $1 }' > swap_util.txt

當這些命令運行時,輸出文件只是空的。 有誰知道為什么我無法生成這些文件?

我非常感謝你的幫助。

謝謝你,亞倫

UDPATE :這是輸出文件的副本: http//www.queencitytech.com/ServerPerfRepo180610.out

也許這是一個錯字,但您正在搜索的文件和您正在創建的文件是不同的。

也就是說, OUTPUT=...行表示DAY-MONTH-YEAR ,但grep行表示MONTH-DAY-YEAR

編輯 :好的,你發布了輸出文件。 top命令可以看到各種各樣的特殊字符。 你可以將批量( top -d1 -n1 -b )arg添加到top以隱藏它嗎?

另一個編輯 :您的grep命令似乎是特定於案例的。 這是故意的嗎? 結果與幾個grep過濾器沒有匹配。 嘗試將ignore case(grep -i)添加到命令中。 此外,您正在搜索“加載平均”但輸出顯示“加載平均”,所以你永遠不應該找到它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM