项目脚本案例
1. 判断局域网主机存活脚本(主要吸取判断方法,利用until判断,避免多次使用if条件判断)
#!/bin/bash declare -i i=0 declare -i j=1 #++++++++++++++++++++利用until判断用户输入是否合法++++++++++++++++++++++++++++++++++++++ until [[ $netid =~ ([0-9]{1,3}\.){3}[0-9]{1,3} ]];do #如果满足条件则退出循环,否则进入循环 read -p "Input network(eg:192.168.0.0): " netid let i++ if [ $i -eq 3 ];then #如果3次错误输入,则退出脚本 echo "Input network times out!" exit 1 fi done net=`echo $netid|cut -d. -f1-3` #+++++++++++++++++++++++ping function++++++++++++++++++++++++++++++++++++++++++++++++++++ Ping () { #定义函数ping的主体 while [ $j -lt 255 ];do if ping -c1 -w1 $net.$j &>/dev/null;then echo "$net.$j is up" else echo "$net.$j is down" fi let j++ done } Ping #调用函数 |
2.利用while循环及调用系统本身function,每2s监控网站是否正常?
#!/bin/bash . /etc/rc.d/init.d/functions #执行系统函数调用 #+++++++++++++++++++++arg select+++++++++++++++++++++++++++++++++++++++++++++++++++++ if [ $# -ne 1 ];then echo $"usage $0 url" exit 1 fi #++++++++++++++++++++web monitor+++++++++++++++++++++++++++++++++++++++++++++++++++++ flag=`curl -o /dev/null --connect-timeout 5 -s -w "%{http_code}" $1|egrep -w "200|301|302"|wc -l` run (){ while true;do if [ $flag -ne 1 ];then action "$1 is error." /bin/false #调用系统函数action,其中fales时echo $? 假 else action "$1 is ok." /bin/true fi #action函数再次调用一系列函数组成ok和fail sleep 2 done } run "$1" [[email protected] ~/test]#./curl.sh http://www.baidu.com |