¼ÓÈëÊÕ²Ø | ÉèΪÊ×Ò³ | »áÔ±ÖÐÐÄ | ÎÒҪͶ¸å Àî´óͬ £¨https://www.lidatong.com.cn/£©- ¿Æ¼¼¡¢½¨Õ¾¡¢¾­Ñé¡¢ÔÆ¼ÆËã¡¢5G¡¢´óÊý¾Ý,Õ¾³¤Íø!
µ±Ç°Î»Ö㺠Ê×Ò³ > ×ۺϾ۽¹ > ·þÎñÆ÷ > °²È« > ÕýÎÄ

Shellʵս֮ϵͳÐÅÏ¢·ÖÎö

·¢²¼Ê±¼ä£º2020-12-15 16:15:09 ËùÊôÀ¸Ä¿£º°²È« À´Ô´£ºÍøÂçÕûÀí
µ¼¶Á£º°¸Àý½éÉÜ ÀûÓÃshell½Å±¾»ñȡϵͳµÄÐÅÏ¢ºÍϵͳµ±Ç°×´Ì¬ÐÅÏ¢£¬ÈçϵͳµÄÃû³Æ°æ±¾£¬ÏµÍ³µ±Ç°µÄ¸ºÔØ£¬´ÅÅÌʹÓÃÇé¿öµÈ¡£ ¸Ã°¸ÀýÒ»¹²°üÀ¨Á½¸ö½Å±¾Îļþ£º 1¡¢monitor.sh (Ö÷¿ØÖƽű¾) 2¡¢sys_monitor.sh(ϵͳÐÅÏ¢¼à¿Ø½Å±¾Îļþ) 3¡¢test.sh £¨²âÊÔÖ÷¿Ø½Å±¾£¬Ã»Ê²Ã´Êµ

°¸Àý½éÉÜ

ÀûÓÃshell½Å±¾»ñȡϵͳµÄÐÅÏ¢ºÍϵͳµ±Ç°×´Ì¬ÐÅÏ¢£¬ÈçϵͳµÄÃû³Æ°æ±¾£¬ÏµÍ³µ±Ç°µÄ¸ºÔØ£¬´ÅÅÌʹÓÃÇé¿öµÈ¡£

¸Ã°¸ÀýÒ»¹²°üÀ¨Á½¸ö½Å±¾Îļþ£º
1¡¢monitor.sh (Ö÷¿ØÖƽű¾)
2¡¢sys_monitor.sh(ϵͳÐÅÏ¢¼à¿Ø½Å±¾Îļþ)
3¡¢test.sh £¨²âÊÔÖ÷¿Ø½Å±¾£¬Ã»Ê²Ã´Êµ¼ÊÓô¦£©

×¼±¸

ÔÚlinuxÉÏн¨Ò»¸öÎļþ¼Ðshell1£¬È»ºóÔÚÀïÃæÐ½¨Èý¸ö.shÎļþ£ºmonitor.sh¡¢sys_monitor.sh

¿ªÊ¼Ð´´úÂë

µÚÒ»²½£ºÏÈдÖ÷¿Ø½Å±¾£ºmonitor.sh

cd shell1
vim monitor.sh
#monitor.sh
#!/bin/bash
i=0
#${tput sgr0}¿ÉÒÔÉèÖÃecho -eµÄ½áÊøÑÕɫΪϵͳĬÈÏÑÕÉ«
reset=$(tput sgr0)
number=""
#ÉùÃ÷¹ØÁªÊý×飬¹ØÁªÊý×éµÄË÷Òý¿ÉÒÔÊÇ×Ö·û´®
declare -A reArr
#È¡³öshell1ÖеijýÁË"monitor.sh"µÄÿ¸öÎļþ£¬
for script_file in $(ls -I 'monitor.sh')
        do
                echo -e "e[1;36m" ${i} ${script_file} "==>" ${reset}
                #ÓùØÁªÊý×éreArr±£´æÎļþµÄË÷ÒýºÍÎļþÃû
                reArr[$i]=${script_file}
                number="${number} | ${i}"
                #Ë÷Òý×ÔÔö
                i=$(( i+1 ))
        done
echo ${number}
while true
        do
                read -t 30 -p "please input number : " num 
                echo $num
                #Óû§ÊäÈëµÄ²»ÊÇ0-1,Í˳ö
                if [[  $num != [0-1] ]]
                        then
                                exit 1
                fi
                #Óû§ÊäÈëµÄ0-1,Ö´Ðиýű¾Îļþ
                sh ./${reArr[$num]}
        done

µÚ¶þ²½£ºÐ´²âÊԽű¾£ºtest.sh £¨´ËʱÈÔÈ»ÔÚshell1Îļþ¼ÐÏ£©

vim test.sh
# test.sh
#!/bin/bash 
echo "test!"

µÚËIJ½£º²âÊÔÖ÷¿Ø½Å±¾

vim monitor.sh


test.shË÷ÒýΪ1,°´ÌáʾÊäÈëÊý×Ö1£¬´òÓ¡³ö¡±test!¡±£¬ËµÃ÷Ö÷¿Ø½Å±¾²âÊԳɹ¦£¡

µÚÎå²½£º±àдϵͳÐÅÏ¢¼à¿Ø½Å±¾

vim sys_monitor.sh

ÐèÒªÊä³öµÄϵͳÐÅÏ¢ÓУº
ϵͳÃû³Æ£º uname -o
ϵͳÃû×ֺͰ汾£º cat /etc/issue | grep "release"
ϵͳÌåϵ½á¹¹£º uanme -m
Ö÷»úÃû£º${HOSTNAME}
ÄÚ²¿IP£ºhostname -I
ÍⲿIP£º curl -s http://ipecho.net/plain
²éÑ¯ÍøÂçÊÇ·ñÁªÍ¨£ºping -c 2 ij¸öÓòÃû ²âÊÔÊÇ·ñÄÜÁªÍ¨
µÇ¼·þÎñÆ÷µÄÓû§£º who
²éѯϵͳÒÑʹÓÃÄڴ棬MemTotal-MemFree£º

awk '/MemTotal/{memTotal=$2}/MemFree/{memFree=$2}END{print "system_used_memory:" (memTotal-memFree)/1024 "M"}' /proc/meminfo

²éѯϵͳÉÏÓ¦ÓÃʹÓõÄÄڴ棺MemTotal-MemFree-Cache£¨»º´æ£©-Buffers£¨»º³å£©£º

awk '/MemTotal/{memTotal=$2}/MemFree/{memFree=$2}/^Cashed/{cashed=$2}/Buffers/{buffers=$2}END{print "apps_used_memory:" (memTotal-memFree-cashed-buffers)/1024 "M"}'  /proc/meminfo

ϵͳ×î½üµÄƽ¾ù¸ºÔØ£ºtop -n 1 | sed -n '1p' | awk '{print "load average: "$12 $13 $14}'

´ÅÅÌʹÓÃÇé¿ö£ºdf -h | sed -n '2p' | awk '{print "disk_name:"$1 " size:"$2" used:"$5}'

ϵͳ¼à¿Ø½Å±¾´úÂë

#!/bin/bash 
clear
reset=$(tput sgr0)
if [[ $# -eq 0 ]]
        then
                echo "os_name: $(uname -o)"
                echo "os name and version:" $(cat /etc/issue | grep -e "release")
                echo "architecture: $(uname -m)"
                echo "hostname: ${HOSTNAME}"
                echo -e "internal ip: e[32m $(hostname -I)" ${reset}
                echo -e "external ip:e[32m $(curl -s http://ipecho.net/plain)" ${reset}
                ping -c 2 "www.baidu.com" &> /dev/null && echo "Internet Connected" || echo "Internet Disconnected"
                who > /tmp/who
                echo -e "e[32m Logged in Users:" $reset  && cat /tmp/who
                rm -f /tmp/who
                awk '/MemTotal/{memTotal=$2}/MemFree/{memFree=$2}END{print "system_used_memory:" (memTotal-memFree)/1024 "M"}' /proc/meminfo
                awk '/MemTotal/{memTotal=$2}/MemFree/{memFree=$2}/^Cashed/{cashed=$2}/Buffers/{buffers=$2}END{print "apps_used_memory:" (memTotal-memFree-cashed-buffers)/1024 "M"}' /proc/meminfo                
                top -n 1 | sed -n '1p' | awk '{print "load average: "$12 $13 $14}'
                df -h | sed -n '2p' | awk '{print "disk_name:"$1 " size:"$2" used:"$5}'
fi
~

µÚÁù²½£º²âÊÔ¼à¿Ø½Å±¾

sh monitor.sh

°´ÌáʾÊäÈëÊý×Ö0£º

£¨±à¼­£ºÀî´óͬ£©

¡¾ÉùÃ÷¡¿±¾Õ¾ÄÚÈݾùÀ´×ÔÍøÂ磬ÆäÏà¹ØÑÔÂÛ½ö´ú±í×÷Õ߸öÈ˹۵㣬²»´ú±í±¾Õ¾Á¢³¡¡£ÈôÎÞÒâÇÖ·¸µ½ÄúµÄȨÀû£¬Ç뼰ʱÓëÁªÏµÕ¾³¤É¾³ýÏà¹ØÄÚÈÝ!

    ÍÆ¼öÎÄÕÂ
      ÈȵãÔĶÁ