Home

쉘기능을 자유자재로 다루기_11 여러 호스트에 병렬로 ping을 날려서 대기 시간 줄이기

출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어 명령어: ping, wait, cat 키워드: 병렬 처리, 동기, 종료 사용처: 여러 호스트에 ping 명령어를 실행하는 대기 시간을 줄이고자 병렬로 백그라운드 실행시키고 명령어 종료를 동기화해서 결과를 순서대로 출력하고 싶을 때 실행예제 $ ./background-wait.sh PING 192.168.2.1 (192.168.2.1): 56 data bytes 64 bytes from 192.168.2.1: icmp_seq=0 ttl=255 time=3.554 ms 64 bytes from 192.168.2.1: icmp_seq=0 tt...

Read more

쉘기능을 자유자재로 다루기_10 여러 URL 파일을 동시에 병렬로 내려받기

출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어 명령어: curl 키워드: 백그라운드, 병렬 처리, 내려받기 사용처: 대기 시간이 있는 명령어가 많아서 병렬로 실행해 전체 실행 시간을 줄이고 싶을 때 실행예제 $ ./background-download.sh $ <-------------------------- 파일 내려받기 완료를 기다리지 않고 바로 셸에 제어가 들어옴 스크립트 #!/bin/sh # 병렬로 여러 사이트에서 내려받기 # 각각 백그라운드에서 처리 curl -sO http://www.example.org/download/bigfile.dat &...

Read more

쉘기능을 자유자재로 다루기_09 명령어가 실패한 시점에 종료해 스크립트 오작동 방지하기

출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어 명령어: set, cd, rm 키워드: 종료 스테이터스, 명령어, 실패, 정지 사용처: 어떤 중요한 처리를 하는 스크립트에서 도중에 명령어가 하나라도 실패하면 거기서 정지하고 싶을 때 실행예제 $ ./set-e.sh ./set-e.sh: line 12: cd: /var/log/myapp-: No Such file or directory $ ls set-e.sh test.log (test.log가 남아 있음) 스크립트 #!/bin/sh # 명령어 종료 스테이터스가 0이 아니라면 # 스크립트를 바로 ...

Read more

쉘기능을 자유자재로 다루기_08 리다이렉트가 번잡하지 않도록 그룹핑해서 보기 좋게 만들기

출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어 명령어: echo 키워드: 리다이렉트, 그룹핑 사용처: 여러 명령어 결과를 같은 파일에 리다이렉트해서 출력하는 걸 한꺼번에 묶어서 작성하고 싶을 때 실행예제 $ ./echo-redirect.sh $ cat output.log [Script start] Sat Jan 18 22:21:22 KST 2014 echo-redirect.sh output.log script.sh [Script end] 스크립트 #!/bin/sh # 중괄호를 그룹핑해서 리다이렉트를 하나로 합치기 { echo "[Script start]" dat...

Read more

쉘기능을 자유자재로 다루기_07 이식성을 고려한 외부 명령어 이용하기

출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어 명령어: uname, echo 키워드: 범용성, 이식성, OS 사용처: OS마다 명령어 동작이 달라 각각 명령어를 변수로 정의하고 싶을 때 실행예제 $ ./os-command.sh 이것은 줄이 이어진 메시지 입니다. 스크립트 #!/bin/sh # echo 명령어 경로를 환경에 따라서 바꿔서 셸 변수 ECHO에 대입 case $(uname -s) in # Mac 이면 셸 내장이 아니라 bin/echo 사용 Darwin) ECHO="/bin/echo" ;; *) ECHO="...

Read more

쉘기능을 자유자재로 다루기_06 scp로 파일 전송할 때 CPU 이용률을 계산해서 압축 처리를 할 것인지 판단하기

출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어 명령어: time, scp, awk, bc 키워드: CPU 바운드, I/O 바운드, 처리 시간, 측정 사용처: 스크립트 실행 시간과 CPU 사용 시간을 측정해서 전체 실행 시간 대비 CPU 사용률을 알고 싶을 때 실행예제 $ ./time-scp.sh transfer.dat 100% 18MB 9.0MB/s 00:02 scp 전송 CPU 사용률 : 66.98 (%) 스크립트 #!/bin/sh # 테스트 전송 파일명, 전송할 곳 등 정의 username="user1" # ssh 사용자명 --------------...

Read more

쉘기능을 자유자재로 다루기_05 늘 지정한 환경 변수를 설정해서 명령어를 실행하도록 래퍼 스크립트 작성하기

출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어 명령어: exec 키워드: 래퍼, 환경 변수 사용처: 래퍼 스크립트를 작성하고 싶을 때 실행예제 $ ./exec.sh -o output.txt <-------- myappd가 실행됨 스크립트 #!/bin/sh # TMPDIR 환경 변수 설정 TMPDIR="/disk1/tmp" export TMPDIR # exec 명령어로 myappd 실행. 명령행 인수를 "$@"로 넘김 exec ./myappd "$@" #------------ 1     해설 이 스크립트는 환경 변수 TMPDIR을 “/disk1/tmp...

Read more