自分のネットワーク環境を整備する為に、幾つかのスクリプトを作りました。忘れる前にメモしておきます。
1 myDate
2 myHost
4. myScanIP
上記のスクリプトの28行目の「dummy=1」と言う無意味は命令は、本来コメント「#」でしたが、そうすると次の「elif」がエラーとなるので挿入しました。この経験から、現在zshへ乗り換えをしようとしています。
【関連記事】
ーーーー このポストの履歴
- myDate: 自分のタイムスタンプ
- myHost: 自分のマシンのホスト名、localhostのIPアドレス
- myNet: 自分のマシンが属するネットワーク情報
- myScanIP: PINGを連続的にスキャンする。
- myDiskutil_list: 「diskutil list」のまんま
- myMount_disk1: 外付けhdd, disk1のマウント
- myUnmount_disk1: 外付けhdd, disk1のアンマウント
この内、1〜4は便利なので、公開しておきます。
1 myDate
#!/bin/bash date +'%Y-%m-%d(%a)%H:%M:%S'
2 myHost
#!/bin/bash
#
# myHost: 動作例=>「HOST: name=(div-mm.local); ip=(10.0.1.2)」
#
# 参考: UNIXシェルスクリプト 逆引き大全 333極意
# p112, #84 文字列を指定した区切り文字で分割する。
getHostIP() {
hostName=`hostname`
localIP=`netstat -r -f inet |grep "localhost" | grep "UHS"`
_IFS="$IFS" # save $IFS
IFS=' '
set -- $localIP
IFS="$_IFS"
# 分割結果:
# $1: host's IP address
# $2: localhost
# $3: UHS
echo "HOST: name=($hostName); ip=(${1})"
return
}
# 実行
getHostIP
3. myNet
#!/bin/bash echo '"netstat -r -f inet"' echo " at `myDate`" netstat -r -f inetdiv
4. myScanIP
#!/bin/bash
#
# myScanIP [ipSpace ipStart ipWidth ]
#
#localIP=`netstat -r -f inet |grep localhost | grep UHS`
localIP=`myHost`
echo $localIP
declare -i j k ipStart ipStop ipWidth noa
j=1 #start
k=5 #width
# Default values
ipSpace="192.168.1"
ipStart=j
ipWidth=k
noa=$#
#echo " Number of Arguments = $noa"
#echo " ipSpace=${ipSpace}"
#echo " ipStart=${ipStart}"
#echo " ipWidth=${ipWidth}"
if [ $noa -eq 0 ]; then
damy=1
elif [ $noa -eq 1 ]; then
ipSpace=$1
elif [ $noa -eq 2 ]; then
ipSpace=$1
ipStart=$2
elif [ $noa -eq 3 ]; then
ipSpace=$1
ipStart=$2
ipWidth=$3
fi
ipStop=$ipStart+$ipWidth-1
if [ $ipStop -gt 256 ]; then
ipStop=255
ipWidth=ipStop-ipStart+1
fi
file="ipScan_${ipSpace}.${ipStart}~${ipStop}.txt"
echo "======= myScanIP for ${ipSpace}.${ipStart}~${ipStop}" > $file
echo "===== ping from ${localIP}" >> $file
echo " Number of Arguments = $noa" >> $file
echo " ipSpace=${ipSpace}" >> $file
echo " ipStart=${ipStart}" >> $file
echo " ipStop=${ipStop}" >> $file
echo " ipWidth=${ipWidth}" >> $file
echo "=== save file:'${file}'" >> $file
timeStamp=`date +'%Y-%m-%d(%a)%H%M%S'`
echo "* Scan start:_${timeStamp} " >> $file
echo "======= scanIP for ${ipSpace}.${ipStart}~${ipStop} =============="
echo "===== ping from ${localIP}"
echo " Number of Arguments = $noa"
echo " ipSpace=${ipSpace}"
echo " ipStart=${ipStart}"
echo " ipStop=${ipStop}"
echo " ipWidth=${ipWidth}"
echo "=== save file:'${file}' "
echo "* Scan start:_${timeStamp} "
j=ipStart
while [ $j -le $ipStop ];
do
result=`ping -c 2 "${ipSpace}.$j"`
yes_response=""
yes_response=`echo "$result" |grep 'round-trip min/avg/max/stddev'`
if [ "$yes_response" != "" ]; then
echo "#ip=${j}: ${yes_response}" >>$file
echo "#ip=${j}: ${yes_response}"
else
echo "_ip=${j}:non___"
fi
j=j+1
done
timeStamp=`date +'%Y-%m-%d(%a)%H%M%S'`
echo "* Scan stopped:_${timeStamp} " >> $file
echo "* Scan stopped:_${timeStamp} "
echo "========= myScanIP finished =============="
上記のスクリプトの28行目の「dummy=1」と言う無意味は命令は、本来コメント「#」でしたが、そうすると次の「elif」がエラーとなるので挿入しました。この経験から、現在zshへ乗り換えをしようとしています。
【関連記事】
ーーーー このポストの履歴
- 開始 2012-03-25 (日) 13:59
0 件のコメント:
コメントを投稿