ping: ./ipsweep.sh.105: 알 수 없는 이름 또는 서비스 [닫기]

ping: ./ipsweep.sh.105: 알 수 없는 이름 또는 서비스 [닫기]

#암호:

#!/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

관련 정보