シェルでのサイクルと到達可能性テストの複数の方法

 

1. Cプログラムのように

#!/ビン/バッシュ

にとって ((i = 1;私<= 100;i ++))

行う

echo $i

完了

 

2 . コードのブロック

#!/ビン/バッシュ

for i in {1..100}

行う

echo $i

完了

 

3. seq mode

#!/ビン/バッシュ

`seqのiの場合 1 100`

行う

echo $i

完了

Result of execution

[ルート@ AMH〜]# bash for.sh

1

2

3

4

5

6

7

.

100

 

Insert a mass of ip in /opt/ip.txt , one ip for each row,

and detect the reachability of all ip address by a shell script.

#/ビン/バッシュ

for ip in `cat /opt/ip.txt`

行う

ping $ip -c 2 >> /dev / null 2>&1

もし [ $? -eq 0 ]; その後

echo $ip is up

そうしないと

echo $ip is down

あります

完了

 

Result of execution

[root @ localhost〜]# bash ip_new.sh

10.8.37.67 is up

10.8.20.35 is up

10.8.23.223 is up

10.8.23.43 is down

10.8.39.19 is down

10.8.24.95 is down

10.8.20.63 is up

10.8.14.207 is down

10.8.23.59 is down

 

Enrich content of this script, confirming whether port 36566 is opening or

not if ip can ping.

#/ビン/バッシュ

package=`rpm -qa | grep ^nc-`

もし [ $package != `rpm -qa | grep ^nc-` ]; その後

エコー “preparing…”

yum install nc -y >>/dev/null

そうしないと

エコー “nc has been installd

あります

for ip in `cat /opt/ip.txt`

行う

ping $ip -c 2 >> /dev / null 2>&1

もし [ $? -eq 0 ]; その後

echo -e $ip is up “\c”

sshd_port=`nc -w 10 -z $ip 36566 | awk ‘{印刷 $7}’`

もし [ “$sshd_port” == “succeeded!” ]; その後

エコー “港 36566 ok

そうしないと

エコー “港 36566 エラー”

fielse

echo $ip is down

あります

完了

 

Result of execution

[root @ localhost〜]# bash ip_new.sh

nc has been installd

10.8.38.35 is up port 36566 ok

10.8.37.63 is down

10.8.23.11 is down

10.8.39.15 is up port 36566 エラー

10.8.23.43 is up port 36566 ok

10.8.24.115 is down

10.8.38.139 is up port 36566 ok

返信を残します