쉘기능을 자유자재로 다루기_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...
쉘기능을 자유자재로 다루기_10 여러 URL 파일을 동시에 병렬로 내려받기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: curl
키워드: 백그라운드, 병렬 처리, 내려받기
사용처: 대기 시간이 있는 명령어가 많아서 병렬로 실행해 전체 실행 시간을 줄이고 싶을 때
실행예제
$ ./background-download.sh
$ <-------------------------- 파일 내려받기 완료를 기다리지 않고 바로 셸에 제어가 들어옴
스크립트
#!/bin/sh
# 병렬로 여러 사이트에서 내려받기
# 각각 백그라운드에서 처리
curl -sO http://www.example.org/download/bigfile.dat &...
쉘기능을 자유자재로 다루기_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이 아니라면
# 스크립트를 바로 ...
쉘기능을 자유자재로 다루기_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...
쉘기능을 자유자재로 다루기_07 이식성을 고려한 외부 명령어 이용하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: uname, echo
키워드: 범용성, 이식성, OS
사용처: OS마다 명령어 동작이 달라 각각 명령어를 변수로 정의하고 싶을 때
실행예제
$ ./os-command.sh
이것은 줄이 이어진 메시지 입니다.
스크립트
#!/bin/sh
# echo 명령어 경로를 환경에 따라서 바꿔서 셸 변수 ECHO에 대입
case $(uname -s) in
# Mac 이면 셸 내장이 아니라 bin/echo 사용
Darwin)
ECHO="/bin/echo"
;;
*)
ECHO="...
쉘기능을 자유자재로 다루기_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 사용자명 --------------...
쉘기능을 자유자재로 다루기_05 늘 지정한 환경 변수를 설정해서 명령어를 실행하도록 래퍼 스크립트 작성하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: exec
키워드: 래퍼, 환경 변수
사용처: 래퍼 스크립트를 작성하고 싶을 때
실행예제
$ ./exec.sh -o output.txt <-------- myappd가 실행됨
스크립트
#!/bin/sh
# TMPDIR 환경 변수 설정
TMPDIR="/disk1/tmp"
export TMPDIR
# exec 명령어로 myappd 실행. 명령행 인수를 "$@"로 넘김
exec ./myappd "$@" #------------ 1
해설
이 스크립트는 환경 변수 TMPDIR을 “/disk1/tmp...
197 post articles, 29 pages.