Home

쉘기능을 자유자재로 다루기_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

쉘기능을 자유자재로 다루기_04 이상 종료해도 흔적을 남기지 않도록 종료 시 작업 파일을 삭제하는 뒷처리하기

출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어 명령어: trap, rm 키워드: 임시 파일, 종료, 시그널, 트랩 사용처: 임시 파일을 사용하는 스크립트에서 정상 종료든 강제 종료든 상관없이 공통된 종료 처리를 하고 싶을 때 실행예제 $ ./sig-exit.sh ^C <----------------------------------- Ctrl + C로 강제 종료해도 $ ls sig-exit.sh calcA.sh calcB.sh <-------- 임시 파일은 남아 있지 않음 스크립트 #!/bin/sh # 임시 파일을 정의, 빈 파일로 초기화 tmpfile="...

Read more

쉘기능을 자유자재로 다루기_03 HUP 시그널을 받아서 실행 중에 설정 파일을 다시 읽어들이기

출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어 명령어: trap, uptime, .(닷 명령어) 키워드: 시그널, 끼어들기, 트랩, 리로드 사용처: 실행 중인 스크립트의 설정 파일이 바뀌어도 프로세스를 멈추지 않고 다시 설정 파일을 읽어들이고 싶을 때 실행예제 $ ./sig-hup.sh $ kill -s HUP <프로세스 ID> <---- 스크립트를 실행한 채로 setting.conf를 수정하고, 다른 터미널에서 시그널을 보내서 파일 출력할 곳이 변한 걸 확인 스크립트 #!/bin/sh # 환경 초기화 셸 함수, 로그 출력할 곳을 설정한 setting...

Read more