날짜처리_03 한 달 전에 만든 로그 파일을 일괄 아카이브 하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: date, tar
키워드: 전월, 월말
사용처: 오늘 날짜에서 지난달 년월표기(YYYYMM)를 조합해서 해당 날짜가 파일명에 있는 로그 파일을 아카이브하고 싶을 때
실행예제
$ ./lastmonth.sh
/var/log/myapp/access.log-20130201
/var/log/myapp/access.log-20130218
/var/log/myapp/access.log-20130222
/var/log/myapp/access.log-20130228
스크립트
#!/bin/sh
logdir="/var/log/mya...
날짜처리_02 오늘이 말일인지 판별하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: date
키워드: 월말
사용처: 오늘이 달의 마지막 날인지 스크립트에서 판정하고 싶을 때
실행예제
$ ./monthday.sh 월별 리포트 작성하는 외부 스크립트 실행
스크립트
#!/bin/sh
tomorrow=$(date "+%d" -d '1 day') # ------ 1
if [ "$tomorrow" = "01" ]; then # -------- 2
# 오늘이 말일이라면 월별 리포트를 작성하는 외부 스크립트 실행
./monthly_report.sh
fi
해설
이 스크...
날짜처리_01 date 명령어로 두 날짜를 비교하고 날짜차를 구하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: date, expr
키워드: 날짜, UNIX 시간, 에포크 초
사용처: 시간 문자열 둘을 비교해서 몇일 차이인지 계산하고 싶을 때
실행예제
$ ./date-epoch.sh
day1(2012/04/01 10:49:41): 1333244981
day2(2012/03/30 08:31:52): 1333063912
day interval:
2
스크립트
#!/bin/sh
# 비교할 두 날짜를 변수로 정의
day1="2012/04/01 10:49:41" #----------------------- 1
day2="2012/...
파일처리_27 sed로 파일 치환 심볼릭 링크를 실제 파일로 바꾸지 않게 하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: sed, readlink
키워드: 심볼릭 링크, 파일 치환, 실제 파일
사용처: sed 명령어 -i 옵션으로 심볼릭 링크를 대상으로 할 때
실행예제
$ ls -F
orig/ sed-symlink.sh* target.txt@ #---------- 현재 디렉터리에 심볼릭 링크 target.txt@가 있고 orig/ 디렉터리에 실제 파일이 존재함
$ ls orig/
target.txt
$ ./sed-symlink.sh
$ ls -F
orig/ sed-symlink.sh* target.txt@
$ ls -F orig/
targ...
파일처리_26 이중 실행이 가능한 임시 파일 작성하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: date, cat
키워드: 임시 파일, 프로세스 ID
사용처: 스크립트를 동시에 실행할 때 임시 파일이 중복되지 않도록 하고 싶을 때
실행예제
$ ./tmppid.sh
Sat Dec 14 22:50:16 KST 2013
스크립트
#!/bin/sh
tmpfile="tmp.$$" #---- 1
date > $tmpfile #----- 2
sleep 10
cat $tmpfile #-------- 3
rm -f $tmpfile
해설
이 스크립트는 프로그램에서 잠시 사용하는 임시 파일을 다룹니다. ...
파일처리_25 .svn 등 숨은 파일과 디렉터리만 나열하기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: ls, case
키워드: 숨김 파일, 닷 파일
사용처: 숨김 파일만 대상으로 처리하고 싶을 때
실행예제
$ ./dotfile.sh
dot file: .bashrc
dot fiel: .cshrc
dot directory: .svn/
스크립트
#!/bin/sh
# IFS에 줄바꿈 설정
IFS='
' #----------------------------------------- 1
# 현재 디렉터리 아래에 있는 파일을 $filename으로 순서대로 처리
for filename in $(ls -AF) #---------...
파일처리_24 바이너리 파일에 포함된 문자열 열기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: strings, grep
키워드: 바이너리 파일, 검색, 실행 파일
사용처: 에러 메시지를 바탕으로 그 메시지를 출력하는 명령어를 찾고 싶을 때
실행예제
$ ./strings.sh
/home/user1/myapp/bin/start: error: Unknown Error
/home/user1/myapp/bin/kill: Unknown Error at %s
/home/user1/myapp/bin/kill: Unknown Error at %s:%d
스크립트
#!/bin/sh
# 검색할 에러 메시지
message="Un...
195 post articles, 28 pages.