#암호:
#!/bin/bash
for ip in `seq 100 110`; do
ping -c 1 $0.$ip | grep "64 bytes" | cut -d " " -f 4 | tr -d ":" &
done
#주문하다:
./ipsweep.sh 192.168.0
#결과:
ping: ./ipsweep.sh.105: Name or service not known
답변1
$0
스크립트의 경로 이름입니다. $1
첫 번째 매개변수입니다.
생성하는 명령은 다음과 같습니다.
ping -c 1 ./pingsweep.sh.100
답변2
다음은 원하는 작업을 수행하는 간단한 스크립트입니다. 필요에 맞게 수정할 수 있습니다.
#!/bin/bash
ping_hosts ()
{
network="192.168.0"
start=$(date +"%d-%m-%Y-%T")
local s=$1
local e=$2
printf '%s\n\n' "Pinging $network"
for ((i=s; i<=e; i++))
do
if ping -s 64 -c 1 -W 1 ${network}.${i} >/dev/null; then
((count1 += 1))
printf '%s\n' "${network}.${i} is UP"
else
((count2 += 1))
printf '%s\n' "${network}.${i} is DOWN"
fi
done
end=$(date +"%d-%m-%Y-%T")
printf '%s\n' "Start:$start"
printf '%s\n\n' "End**:$end"
printf '%s UP and %s DOWN\n' "$count1" "$count2"
}
if (($# < 2)); then
printf '%s\n' "Use start and end range i.e: .${0##*.} 100 110"
exit 1
else
ping_hosts $1 $2
fi
ie를 통해 스크립트를 실행 가능하게 만들 수 있습니다.
chmod u+x ping_hosts
인수 없이 실행하면 다음이 생성됩니다.
$> ./ping_host
Use start and end range i.e: ./ping_host 100 110
다음과 같이 실행하면:
$> ./ping_host 100 110
Pinging 192.168.0
192.168.0.100 is UP
192.168.0.101 is DOWN
192.168.0.102 is UP
192.168.0.103 is DOWN
192.168.0.104 is UP
192.168.0.105 is DOWN
192.168.0.106 is DOWN
192.168.0.107 is DOWN
192.168.0.108 is DOWN
192.168.0.109 is DOWN
192.168.0.110 is DOWN
Start:24-08-2021-22:55:59
End**:24-08-2021-22:56:07
3 UP and 8 DOWN