シェルでのサイクルと到達可能性テストの複数の方法
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