centos7常規系統指標監控shell指令碼
阿新 • • 發佈:2020-08-12
一共兩個指令碼
monitor.sh
#!/bin/bash
log=/var/log/`date '+%Y-%m-%d'`.monitor.log
while [[ ture ]]; do
bash `pwd`/excute.sh >> ${log}
sleep 10
done
excute.sh
#!/bin/bash disk=sda ethn=ens192 function ltime() { echo -e "\n" echo -e "time:\t\t"`date '+%Y/%m/%d-%k:%M:%S'` } function mem() { #mem echo -e "mem_use:\t"`free -m | awk 'NR==2{print $3"MB"}'` } function cpu() { #CPU total=`vmstat 1 5|awk '{x+=$13;y+=$14}END{print x+y}'` average=$(echo "scale=2;$total/5"|bc) echo -e "cpu_use:\t$average%" } function disk_io() { #IO echo -e "disk_io:\t"`iostat | awk 'BEGIN{disk="'"$disk"'"}{if ($1==disk) print $1" tps:"$2" kB_read/s:"$3" kB_wrtn/s:"$4;}'` } function network() { RX_pre=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $2}') TX_pre=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $10}') sleep 1 RX_next=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $2}') TX_next=$(cat /proc/net/dev | grep $ethn | sed 's/:/ /g' | awk '{print $10}') RX=$((${RX_next}-${RX_pre})) TX=$((${TX_next}-${TX_pre})) if [[ $RX -lt 1024 ]];then RX="${RX}B/s" elif [[ $RX -gt 1048576 ]];then RX=$(echo $RX | awk '{print $1/1048576 "MB/s"}') else RX=$(echo $RX | awk '{print $1/1024 "KB/s"}') fi if [[ $TX -lt 1024 ]];then TX="${TX}B/s" elif [[ $TX -gt 1048576 ]];then TX=$(echo $TX | awk '{print $1/1048576 "MB/s"}') else TX=$(echo $TX | awk '{print $1/1024 "KB/s"}') fi echo -e "network:\t$ethn \t RX:$RX TX:$TX " } ltime mem cpu disk_io network