
xargs 와 간단한 쉘 기반 멀티프로세싱 2부 ping
- 지난 이야기
xargs 와 간단한 쉘 기반 멀티프로세싱 2부 ping
1부에 이어서 이번엔 ping 과 xargs 를 이용해 빠른 속도로 서버의 상태를 체크하는 방법입니다.
핑 테스트
관리하는 서버들의 상태를 알아보기 위해 192.168.1.100 ~ 192.168.1.199 까지 ping 을 보낸다고 생각해봅시다.
일단 ping의 결과를 아이피별 파일로 만들어보겠습니다. 큐는 10개, 아이피별로 5번씩 핑을 보냅니다. 사실 ping 은 한 100개 짜리 큐를 만들어서 동시에 보내도 됩니다. 자신의 머신과 네트웤 상황에 맞게 테스트해보시고 조절하세요.
seq 100 199 | xargs -I% -P10 bash -c 'ping -c5 192.168.1.% > %.txt'
일일이 파일로 만들고 다시 처리하려면 귀찮으니까 한번에 처리해봅시다. perl 을 이용하면 편한데, 여기선 좀더 간단한 명령어를 사용해 보겠습니다.
일반적인 ping 의 결과는 다음과 같습니다.
PING 192.168.1.103 (192.168.1.103): 56 data bytes
64 bytes from 192.168.1.103: icmp_seq=0 ttl=64 time=0.103 ms
64 bytes from 192.168.1.103: icmp_seq=1 ttl=64 time=0.119 ms
64 bytes from 192.168.1.103: icmp_seq=2 ttl=64 time=0.109 ms
64 bytes from 192.168.1.103: icmp_seq=3 ttl=64 time=0.080 ms
64 bytes from 192.168.1.103: icmp_seq=4 ttl=64 time=0.128 ms
--- 192.168.1.103 ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.080/0.108/0.128/0.016 ms
사실 우린 끝의 3줄만 알면 됩니다. grep -A2 statistics 를 이용해서 --- 192.168.1.103 ping statistics --- 이후 2줄만 출력한후 xargs 를 이용해서 한줄로 합치겠습니다. ( xargs 가 또 나오네요. 이것도 유용한 트릭입니다. )
seq 100 199 | xargs -I% -P10 bash -c 'ping -c5 192.168.1.% | grep -A2 statistics | xargs ' | tee result.txt
결과는 다음처럼 나옵니다.
--- 192.168.1.103 ping statistics --- 5 packets transmitted, 5 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 0.085/0.282/0.436/0.130 ms
--- 192.168.1.100 ping statistics --- 5 packets transmitted, 5 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 6.855/56.180/109.259/37.225 ms
--- 192.168.1.104 ping statistics --- 5 packets transmitted, 0 packets received, 100.0% packet loss
--- 192.168.1.105 ping statistics --- 5 packets transmitted, 0 packets received, 100.0% packet loss
--- 192.168.1.106 ping statistics --- 5 packets transmitted, 0 packets received, 100.0% packet loss
--- 192.168.1.101 ping statistics --- 5 packets transmitted, 0 packets received, 100.0% packet loss
살아있는 머신이 2개 밖에 없군요. -_-;;;; 정확히 말하자면 원래 머신이 2개입니다. :)
3부에는 좀 스크립트를 만들어서 1부의 웹페이지 다운로더를 개선하는 방법입니다.
Leave xargs 와 간단한 쉘 기반 멀티프로세싱 2부 ping to:
Read more #shell posts
Best Posts From paul9
We have not curated any of paul9's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.
More Posts From paul9
- 오늘의 Perl - 리스트 비교
- 오래된 ThinkPad 노트북을 USB 키보드로 써보자!
- Vuetify 번역, Heroku, Codeship 그리고 삽질
- [크롬 유틸] 탭관리 + 북마크 = Toby
- [크롬 유틸] 탭관리 + 읽기 목록 = OneTab
- [오늘의 무료책] Kubernetes Cookbook
- 오늘의 Packt 무료책 - Mastering Ubuntu Server
- [삽질일기] python, root 송충이는 솔잎..
- [맥 유틸리티] Brew Cask - 커맨드라인에서 어플을 설치하자!
- [윈도우즈 유틸리티] 최고의 윈도우용 터미널 Conemu/Cmder!!
- [삽질일기] 오늘의 교훈: 에러 로그는 ....
- [맥 어플 소개] Clipy - 클립보드 매니져
- Vultr 윈도우 서버에 RDP로 접속하기 2 - 파일공유
- Vultr 윈도우 서버에 RDP로 접속하기
- 따님이 만들어 주신 첫번때 노트북 스티커
- xargs 와 간단한 쉘 기반 멀티프로세싱 2부 ping
- xargs 와 간단한 쉘 기반 멀티프로세싱 1부 웹페이지 다운받기