엇갈린 터미널 창에서 여러 호스트를 ping하는 Bash 스크립트

엇갈린 터미널 창에서 여러 호스트를 ping하는 Bash 스크립트

나는 원해요:

  1. 5개의 터미널 창 열기
  2. 각 터미널 창을 사용하여 네트워크의 다른 호스트를 (지속적으로) ping합니다.

현재 저는 형편없는 홈 네트워크에서 무슨 일이 일어나고 있는지 파악하기 위해 매번 수동으로 이 작업을 수행하고 있습니다. 또한 bash 스크립팅을 스스로 가르치는 데 사용할 수 있는 좋은 책이 있는지 궁금합니다. 인상적인.

미리 받을 수 있는 모든 도움에 감사드립니다.

현재 내가 하는 일은 이것이다

답변1

스크립트를 통해 이 작업을 수행하도록 선택할 수 있습니다(IPv4를 사용한다고 가정 gnome-terminal). 아래에서는 핑된 각 IP 주소에 대한 터미널 창을 열고 조정할 수 있는 픽셀 수만큼 창을 엇갈리게 표시합니다. 각 Gnome 터미널 창은 ping의 IP가 포함된 제목으로 식별됩니다.

스크립트를 생성한 후 다음 my_ping.sh을 수행하여 실행 가능하도록 만드세요.

$ chmod a+x my_ping.sh        # see manual page for `chmod' if needed.

버전 A

$ cat my_ping.sh

#!/usr/bin/bash
ip_array=(8.8.8.8 
          8.8.4.4 
          192.168.1.1) # define array with as many IPs as needed
x0=50; y0=50    # top left corner pixel coordinates of 1st term-window to open
pix_offset=50   # pixel xy-offset for subsequently staggered PING windows

for ip in "${ip_array[@]}"; do
    sizeloc="80X24+$x0+$y0"
    gnome-terminal --window \
                   --geometry="$sizeloc" \
                   --title "PING $ip" \
                   -- \ping "$ip"
    x0=$((x0+pix_offset));y0=$((y0+pix_offset))
done

용법:$ my_ping.sh

버전 B

스크립트에 인수로 ping할 IP 주소 목록을 제공해야 할 수도 있습니다 my_ping.sh.

$ cat my_ping.sh

#!/usr/bin/bash
x0=50; y0=50
pix_offset=50

# Include IP type-checking here if needed 
for ip in "$@"; do
    sizeloc="80X24+$x0+$y0"
    gnome-terminal --window \
                   --geometry="$sizeloc" \
                   --title "PING $ip" \
                   -- \ping "$ip"
    x0=$((x0+pix_offset)); y0=$((y0+pix_offset))
done

용법:$ my_ping.sh 8.8.8.8 8.8.4.4 192.168.1.1 [...]


이상적으로는 적어도 "버전 B"에서는 스크립트가 IP 주소를 유형 검사하는지 확인해야 합니다. 루프 이전의 스크립트에서 이 작업을 수행할 수 있습니다 for. HTH.

관련 정보