shell的案例

发布时间 2023-06-24 00:35:41作者: 学习永远没有尽头

shell脚本案例

前言:以下案例难度会逐渐增加!

01 自动检测服务器的连通性(青铜版)

 1 #!/bin/bash
 2 i=0
 3 while((i<254))
 4 do
 5 i=$(($i+1))
 6     ping 192.168.43.$i -w 1 -c 1 >nul
 7     if [ $? -eq 0 ];then
 8         echo 192.168.43.$i is good!
 9     else
10         echo 192.168.43.$i is bad! &>/dev/null
11     fi
12 done

这只是简单的赋予变量进行的案例,使用循环语句,但是缺点就是互动性太低,而且太呆板了,要是ip段不同,那不是会很麻烦,大家想想,有没有灵活的方法,人肉输入ip来检测?

02 自动检测服务器的连通性(白银版)(人肉输入版)

1 #!/bin/bash
2 ping 192.168.43.$1 -w 1 -c 1 >null
3 if [ $? -eq 0 ];then
4         echo 192.168.43.$1 is good!
5         else
6         echo 192.168.43.$1 is bad! 
7 fi

只要稍稍把赋值改动一下,就可以实现手动输入ip进行检测。但是就是每次就只能检测一个ip,费时又费力,但是要是换成另一种方式呢?将需要检测的ip放到一个文件,调用文件内的内容,是不是就更加方便又高效。

03 自动检测服务器的连通性(黄金版)

前提准备:在root的目录下创建了一个server_ip.txt,保存了需要检测的ip地址。

 1 #!/bin/bash
 2 i=/root/server_ip.txt
 3 for line in `cat $i`
 4 do
 5     if [ ${#line} -eq 0 ];then
 6     continue
 7     fi
 8     ip=`echo $line|awk '{print $1}'`
 9     ping $ip -w 1 -c 1 >null
10     if [ $? -eq 0 ];then
11         echo $ip is good!
12     else
13         echo $ip is bad!
14     fi
15 done