Example
The code is as follows |
Copy Code |
#!/usr/bin/python Import os,threading def ping (num): cmd = ' ping-c 1 192.168.1. {0} '. Format (num) Header = Os.popen (cmd). Read () If ' Rtt ' in header: print ' 192.168.1. {0} '. Format (num) For NUM in range (1,254): t = Threading. Thread (target=ping,args= (num,)) T.start () T.join () |
Multithreading, 1-254 seconds Ping finished
The following is a few of my common host monitoring scripts, we can according to their own situation in the revision, hope to give you a little help.
1, view the host network card traffic
The code is as follows |
Copy Code |
#!/bin/bash #!/bin/bash #network #Mike. Xu While:; Todo Time= ' Date +%m '-"%d" "%k": "%m" day= ' Date +%m '-'%d ' Rx_before= ' ifconfig eth0|sed-n "8" P|awk ' {print $} ' |cut-c7-' Tx_before= ' ifconfig eth0|sed-n "8" P|awk ' {print $} ' |cut-c7-' Sleep 2 Rx_after= ' ifconfig eth0|sed-n "8" P|awk ' {print $} ' |cut-c7-' Tx_after= ' ifconfig eth0|sed-n "8" P|awk ' {print $} ' |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 Done |
2. System condition Monitoring
code is as follows |
copy code |
#!/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/DRIV E_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, monitoring the host's disk space, when the use of more than 90% in space by sending mail to send a warning
The code is as follows |
Copy Code |
#!/bin/bash #monitor Available disk space Space= ' DF | Sed-n '/\/$/P ' | Gawk ' {print $} ' | Sed ' s/%//' If [$SPACE-ge 90] Then Fty89@163.com Fi
|
4. Monitor CPU and Memory usage
The code is as follows |
Copy Code |
#!/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 $} ' Load= ' echo $TIMEOUT | Gawk ' {print $} ' | Sed "s/,//" Free= ' echo $VMOUT | Sed-n '/[0-9]/p ' | Sed-n ' 2p ' | Gawk ' {print $} ' Idle= ' echo $VMOUT | Sed-n '/[0-9]/p ' | Sed-n ' 2p ' |gawk ' {print $} ' echo "$DATE, $TIME, $USERS, $LOAD, $FREE, $IDLE" >> $OUTFILE
|
5, the Omni-directional monitoring host
The code is as follows |
Copy Code |
#!/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 & |
Put it in the crontab. Automatic execution per hour:
The code is as follows |
Copy Code |
0 * * * */home/check_xu.sh |
This will generate hourly CPU, memory, network, IO statistics in the/HOME/OSLOG/HOST_YYYYMMDD/HH directory
PS In addition to using code monitoring if only monitoring the host is not online we can use domain name resolution Dnspod free D monitoring control to achieve better than the code.