파일처리_06 신규 파일을 만들지 않고 이미 있는 파일만 파일 갱신일을 바꾸기
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: touch
키워드: 타임 스탬프, 신규 파일, 갱신일
사용처: touch 명령어로 타임스탬프를 갱신하는 초기화 스크립트 등에서 존재하지 않는 파일은 새롭게 만들고 싶지 않을 때
실행 예제
$ ./touch.sh
스크립트
#!/bin/sh
# [YYYYMMDDhhmm.SS]로 [년월일시분.초] 지정
timestamp="201311190123.45"
# 파일 타임스탬프 갱신
# -c 옵션이 있으므로 lock 파일은 신규 파일을 만들지 않음
touch -t $timestamp app1.log # -----------...
파일처리_05 파일 내용을 삭제해서 빈 파일로 만들기(null, :(널명령어))
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: :(널명령어), uptime, sleep
키워드: 빈 파일, 초기화
사용처: 스크립트 시작할 때 기록 파일, 임시 파일을 초기화하고 싶을 때
실행 예제
$ ./null.sh
스크립트
#!/bin/sh
# uptime 명령어 기록 파일 정의
uptimelog="uptime.log" # ----------- 1
# 널 명령어로 빈 파일로 초기화
: > $uptimelog
# 10초마다 6번, uptime 명령어 실행
for i in 1 2 3 4 5 6 # ------------- 2
do
uptime >...
파일처리_04 디렉터리에 있는 파일과 디렉터리 수 조사하기(find, wc)
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: find, wc
키워드: 파일 수, 디렉터리 수, 카운트
사용처: 작업 디렉터리 등 여러 파일이 있는 디렉터리에서 파일 수, 디렉터리 수를 세고 싶을 때
실행 예제
$ ./findcount.sh
대상 디렉터리: /home/user1/myapp/work
파일 수: 4
디렉터리 수: 2
스크립트
#!/bin/sh
targetdir="/home/user1/myapp/work"
filecount=$(find "$targetdir" -maxdepth 1 -type f -print | wc -l) # --- 1
dircoun...
파일처리_03 디렉터리 이동한 다음 간단히 원래 장소로 돌아가기(cd)
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: cd, echo, tar
키워드: 서브셸, 현재 디렉터리, 자식 프로세스
사용처: 스크립트 안에서 cd 명령어로 다른 디렉터리로 이동하고 나서 원래 디렉터리로 간단히 돌아가고 싶을 때 사용합니다.
실행 예제
$ ./subcd.sh
Archive: /var/tmp/archive.tar
count.txt
data1.txt
data2.txt
Start: command.sh
스크립트
#!/bin/sh
# 괄호 안은 서브셸이 되므로 디렉터리 이동은 이 안에서만 유효
(
echo "Archive: /var/tmp/...
파일처리_02 명령어 사용법을 표시할 때 현재 파일명 표시하기(basename)
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: basename
키워드: 파일명, 명령행 인수, 스크립트명
사용처: 도움말 표시나 로그 출력 시 파일명을 출력하고 싶을 때
실행 예제
$ /home/user1/myapp/basename.sh
Usage: basename.sh <string>
$ /home/user1/myapp/basename.sh HELLO
Start: basename.sh ...
Input Argument: HELLO
Stop: basename.sh ...
스크립트
#!/bin/sh
prog=$(basename "$0") # --...
파일처리_01 절대 경로, 상대 경로 관계없이 같은 동작하기(cd, dirname)
출처 : 유닉스 리눅스 쉘스크립트 예제사전_한빛미디어
명령어: cd, dirname
키워드: 절대 경로, 상대 경로, 전체 경로, cron
사용처: cron 동에서 스크립트를 전체 경로로 실행할 때 상대 경로로 실행한 것과 같은 동작을 하고 싶을 때
실행 예제
$ cd /home/user1
$ /home/user1/myapp/dirname.sh
START
END
스크립트
#!/bin/sh
cd "$(dirname "$0")" #---- 1
./start.sh
./end.sh
해설
이 스크립트는 두 외부 파일 start.sh와 end.sh를 순서대로 실행합니다...
Linux-journal log 크기 변경하기
명령어: systemctl
키워드: journal log
사용처: 리눅스의 journal log size limit
리눅스를 오래 사용하다 보면 로그가 많이 쌓여 용량 관리가 필요합니다.
시스템의 특성을 파악하여 적정한 수준으로 변경하시면 됩니다.
Journal namespace 에 따른 단위당 크기 제한
하기 경로의 journald.conf 파일을 수정하여 영구적으로 변경 할 수 있습니다.
/etc/systemd/journald.conf
SystemMaxUse=1000M
재시작
systemctl restart systemd-journald
Journal 파일을 수동으로 정리
수동으로 기간을 정...
197 post articles, 29 pages.